καλησπέρα. τρέχω asterisk 11 χωρίς gui και έχω ένα sip trunk. Θα ήθελα να ενεργοποιήσω ένα call waiting ώστε αν κάποιο εσωτερικό που είναι κατηλειμένο λάβει μια 2η κλήση:
-στο εσωτερικό να φαίνεται ότι έχει 2η κλήση
-σε αυτόν που καλεί να μην λαμβάνει κατευθείαν το busy tone, αλλά μετά από ένα χρονικό διάστημα, πχ 20 δευτερόλεπτα.
έτσι ώστε να έχω την δυνατότητα να απαντήσω την 2η κλήση ή να την απορρίψω?
τώρα έρχεται η 2η ερώτηση. σε περίπτωση που θέλω να απαντήσω την 2η κλήση πως την απαντώ και πως βάζω σε hold την 1η κλήση ώστε να ακούσει moh?
Εμφάνιση 1-15 από 31
Θέμα: call waiting
-
03-01-18, 16:46 call waiting #1
-
11-01-18, 09:52 Απάντηση: call waiting #2
βοήθεια κανείς, παρακαλώ?
-
11-01-18, 10:59 Απάντηση: call waiting #3
Στην συσκευή θα πρέπει να δεις αν είναι ενεργοποιημένο. Η κάθε συσκευή χειρίζεται διαφορετικά την 2η κλήση, αφού καταφέρεις να δεχθείς δεύτερη θα δεις και πως δουλεύει.
-
11-01-18, 11:39 Απάντηση: call waiting #4
επειδή έχω διαφορετικές συσκευές (αναλογικά μέσω spa), zoipe softphones, Ip Phones, θα ήθελα κάτι κεντρικό από τον asterisk. Να μπορεί να το ενεργοποιεί/απενεργοποιεί όποιος θέλει. πχ με *21 (ενεργοποίηση) και #21(απενεργοποίηση) από την συσκευή.
Με αρχή αυτό θέλω να στήσω και άλλες λειτουργίες όπως DND, call forward on busy,.. απλά δεν έχω ιδέα πως τα φτιάχνω.
-
11-01-18, 13:11 Απάντηση: call waiting #5
Κοίτα το call waiting πρέπει να το υποστηρίζει και η συσκευή αλλιώς δεν θα μπορείς να χειριστείς παραπάνω από μία κλήση.
Μετά το πως θα υλοποιήσεις την λειτουργία είναι άλλο θέμα.
Για τα υπόλοιπα θα πρέπει να φτιάξεις diaplan που εκτελεί τις λειτουργίες που θες, δεν υπάρχουν μέσα στον asterisk.
H προσέγγιση που ακολουθεί το freepbx, είναι να χρησιμοποιεί γι αυτές τις λειτουργίες την εσωτερική βάση του asterisk ώστε να αποθηκεύει διάφορα states για το κάθε εσωτερικό και να τα τσεκάρει πρώτα πριν στείλει την κλήση στην συσκευή.
Θα μπορούσες να ανοίξεις τα αρχεία του freepbx και να πάρεις μια ιδέα για να σε βοηθήσει.
-
11-01-18, 13:31 Απάντηση: call waiting #6
Καλημέρα, ακριβώς το ίδιο το έκανα με τον απλό τρόπο, να βάλω 2 λογαριασμούς σε κάθε συσκευή. Επίσης ενεργοποίησα το Follow me του κάθε βασικού λογαριασμού, ώστε να χτυπάει και στον 2ο, π.χ 101 βασικός λογαριασμός και 102 δεύτερος. Με το που δέχεται κλήση το 101 αν μιλάει να στέλνει την κλήση στο 102. Ετσι στην οθόνη βλέπεις και ποιος σε καλέι στην 2η γραμμή και μπορείς να το απαντήσεις και αυτόματα μπαίνει σε αναμονή η πρώτη γραμμή.
-
11-01-18, 13:46 Απάντηση: call waiting #7
θα ήθελα να γίνεται δυναμικά. call forward με *70 και μετά το νούμερο που θέλω να στείλω την κλήση. πχ *70 και το κινητό μου και την επόμενη να κάνω *70 και το σταθερό της δουλειάς.
-
11-01-18, 14:19 Απάντηση: call waiting #8
Τα macro, app του freepbx
Κώδικας:[app-callwaiting-cwoff] include => app-callwaiting-cwoff-custom exten => *71,1,Macro(user-callerid,) exten => *71,n,Set(CONNECTEDLINE(name-charset,i)=utf8) exten => *71,n,Set(CONNECTEDLINE(name,i)=Call Waiting: OFF) exten => *71,n,Set(CONNECTEDLINE(num,i)=${AMPUSER}) exten => *71,n,Answer exten => *71,n,Wait(1) exten => *71,n,Noop(Deleting: CW/${AMPUSER} ${DB_DELETE(CW/${AMPUSER})}) exten => *71,n(hook_1),Playback(call-waiting&de-activated) exten => *71,n,Macro(hangupcall,) ;--== end of [app-callwaiting-cwoff] ==--; [app-callwaiting-cwon] include => app-callwaiting-cwon-custom exten => *70,1,Macro(user-callerid,) exten => *70,n,Set(CONNECTEDLINE(name-charset,i)=utf8) exten => *70,n,Set(CONNECTEDLINE(name,i)=Call Waiting: ON) exten => *70,n,Set(CONNECTEDLINE(num,i)=${AMPUSER}) exten => *70,n,Answer exten => *70,n,Wait(1) exten => *70,n,Set(DB(CW/${AMPUSER})=ENABLED) exten => *70,n(hook_1),Playback(call-waiting&activated) exten => *70,n,Macro(hangupcall,) ;--== end of [app-callwaiting-cwon] ==--; [macro-dial-one] include => macro-dial-one-custom exten => s,1,Set(DEXTEN=${ARG3}) exten => s,n(setexttocall),ExecIf($[${LEN(${EXTTOCALL})}=0 & ${LEN(${DEXTEN})}>0]?Set(EXTTOCALL=${DEXTEN})) exten => s,n,Set(DIALSTATUS_CW=) exten => s,n,GosubIf($["${FROM_DID}"!="" & "${SCREEN}"="" & "${DB(AMPUSER/${DEXTEN}/screen)}"!=""]?screen,1()) exten => s,n,GosubIf($["${DB(CF/${DEXTEN})}"!=""]?cf,1()) exten => s,n,GotoIf($["${DEXTEN:-1}"="#" | "${DB(DND/${DEXTEN})}"=""]?skip1) exten => s,n,Set(DEXTEN=) exten => s,n,Set(DIALSTATUS=BUSY) exten => s,n(skip1),GotoIf($["${DEXTEN}"=""]?nodial) exten => s,n,GotoIf($["${DEXTEN:-1}"="#"]?continue) exten => s,n,Set(EXTHASCW=${IF($["${CWIGNORE}"!=""]? :${DB(CW/${DEXTEN})})}) exten => s,n,GotoIf($["${EXTHASCW}"="" | "${DB(CFB/${DEXTEN})}"!="" | "${DB(CFU/${DEXTEN})}"!=""]?next1:cwinusebusy) exten => s,n(next1),GotoIf($["${DB(CFU/${DEXTEN})}"!="" & ("${EXTENSION_STATE(${DEXTEN})}"="UNAVAILABLE" | "${EXTENSION_STATE(${DEXTEN})}"="UNKNOWN")]?docfu:skip3) exten => s,n(docfu),Set(DEXTEN=) exten => s,n,Set(DIALSTATUS=NOANSWER) exten => s,n,Goto(nodial) exten => s,n(skip3),GotoIf($["${EXTHASCW}"="" | "${DB(CFB/${DEXTEN})}"!=""]?next2:continue) exten => s,n(next2),GotoIf($["${EXTENSION_STATE(${DEXTEN})}"="NOT_INUSE" | "${EXTENSION_STATE(${DEXTEN})}"="UNAVAILABLE" | "${EXTENSION_STATE(${DEXTEN})}"="UNKNOWN"]?continue) exten => s,n,ExecIf($["${DB(CFB/${DEXTEN})}"!="" & "${CFIGNORE}"=""]?Set(DIALSTATUS=BUSY)) exten => s,n,GotoIf($["${EXTHASCW}"!="" | "${DEXTEN:-1}"="#"]?cwinusebusy) exten => s,n,Set(DEXTEN=) exten => s,n,Set(DIALSTATUS=BUSY) exten => s,n,Goto(nodial) exten => s,n(cwinusebusy),GotoIf($["${EXTHASCW}"!="" & "${CWINUSEBUSY}"="true"]?next3:continue) exten => s,n(next3),ExecIf($["${EXTENSION_STATE(${DEXTEN})}"!="UNAVAILABLE" & "${EXTENSION_STATE(${DEXTEN})}"!="NOT_INUSE" & "${EXTENSION_STATE(${DEXTEN})}"!="UNKNOWN"]?Set(DIALSTATUS_CW=BUSY)) exten => s,n(continue),GotoIf($["${DEXTEN}"=""]?nodial) exten => s,n,GosubIf($["${DEXTEN:-1}"!="#"]?dstring,1():dlocal,1()) exten => s,n,GotoIf($[${LEN(${DSTRING})}=0]?nodial) exten => s,n,GotoIf($["${DEXTEN:-1}"="#"]?skiptrace) exten => s,n,GosubIf($[${REGEX("^[\+]?[0-9]+$" ${CALLERID(number)})} = 1]?ctset,1():ctclear,1()) exten => s,n(skiptrace),Set(D_OPTIONS=${IF($["${NODEST}"!="" & ${REGEX("(M[(]auto-blkvm[)])" ${ARG2})} != 1]?${ARG2}M(auto-blkvm):${ARG2})}) exten => s,n,Noop(Blind Transfer: ${BLINDTRANSFER}, Attended Transfer: ${ATTENDEDTRANSFER}, User: ${AMPUSER}, Alert Info: ${ALERT_INFO}) exten => s,n,ExecIf($["${ALERT_INFO}"="" & ${LEN(${AMPUSER})}!=0 & ${LEN(${BLINDTRANSFER})}=0 & ${LEN(${ATTENDEDTRANSFER})}=0]?Set(ALERT_INFO=)) exten => s,n,ExecIf($[${LEN(${BLINDTRANSFER})}!=0]?Set(ALERT_INFO=)) exten => s,n,ExecIf($[${LEN(${ATTENDEDTRANSFER})}!=0]?Set(ALERT_INFO=)) exten => s,n,ExecIf($["${RVOL}"!=""]?Set(ALERT_INFO=${IF($["${ALERT_INFO}"!=""]?${ALERT_INFO}:Normal)}\;volume=${RVOL})) exten => s,n,ExecIf($["${RVOL}"="" & "${DB(AMPUSER/${EXTTOCALL}/rvolume)}" != ""]?Set(ALERT_INFO=${IF($["${ALERT_INFO}"!=""]?${ALERT_INFO}:Normal)}\;volume=${DB(AMPUSER/${EXTTOCALL}/rvolume)})) exten => s,n,GosubIf($["${ALERT_INFO}"!="" & "${ALERT_INFO}"!=" "]?func-set-sipheader,s,1(Alert-Info,${ALERT_INFO})) exten => s,n,ExecIf($[("${MOHCLASS}"!="default") & ("${MOHCLASS}"!="")]?Set(CHANNEL(musicclass)=${MOHCLASS})) exten => s,n,GosubIf($["${QUEUEWAIT}"!=""]?qwait,1()) exten => s,n,Set(__CWIGNORE=${CWIGNORE}) exten => s,n,Set(__KEEPCID=TRUE) exten => s,n,GotoIf($["${USEGOTO}"="1"]?usegoto,1) exten => s,n,GotoIf($["${DB(AMPUSER/${EXTTOCALL}/cidname)}" = "" || "${DB(AMPUSER/${AMPUSER}/cidname)}" = ""]?godial) exten => s,n,Gosub(sub-presencestate-display,s,1(${EXTTOCALL})) exten => s,n,Set(CONNECTEDLINE(name,i)=${DB(AMPUSER/${EXTTOCALL}/cidname)}${PRESENCESTATE_DISPLAY}) exten => s,n,Set(CONNECTEDLINE(num)=${EXTTOCALL}) exten => s,n,Set(D_OPTIONS=${D_OPTIONS}I) exten => s,n(godial),Macro(dialout-one-predial-hook,) exten => s,n,ExecIf($["${DIRECTION}" = "INBOUND"]?Set(D_OPTIONS=${STRREPLACE(D_OPTIONS,T)}I)) exten => s,n(dialapp),Noop() exten => s,n,Dial(${DSTRING},${ARG1},${D_OPTIONS}b(func-apply-sipheaders^s^1)) exten => s,n,ExecIf($["${DIALSTATUS}"="ANSWER" & "${CALLER_DEST}"!=""]?MacroExit()) exten => s,n,ExecIf($["${DIALSTATUS_CW}"!=""]?Set(DIALSTATUS=${DIALSTATUS_CW})) exten => s,n,GosubIf($[("${SCREEN}"!=""&("${DIALSTATUS}"="TORTURE"|"${DIALSTATUS}"="DONTCALL"))|"${DIALSTATUS}"="ANSWER"]?s-${DIALSTATUS},1()) exten => s,n,MacroExit() exten => s,n(nodial),Noop() exten => s,n,ExecIf($["${DIALSTATUS}" = ""]?Set(DIALSTATUS=NOANSWER)) exten => s,n,Noop(Returned from dial-one with nothing to call and DIALSTATUS: ${DIALSTATUS}) exten => s,n,MacroExit() exten => h,1,Macro(hangupcall,) exten => usegoto,1,Set(USEGOTO=) exten => usegoto,n,Goto(from-internal,${DSTRING},1) exten => screen,1,GotoIf($["${DB(AMPUSER/${DEXTEN}/screen)}"!="nomemory" | "${CALLERID(number)}"=""]?memory) exten => screen,n,ExecIf($[${REGEX("^[0-9a-zA-Z ]+$" ${CALLERID(number)})} = 1]?System(rm -f ${ASTVARLIBDIR}/sounds/priv-callerintros/${CALLERID(number)}.*)) exten => screen,n(memory),Set(__SCREEN=${DB(AMPUSER/${DEXTEN}/screen)}) exten => screen,n,Set(__SCREEN_EXTEN=${DEXTEN}) exten => screen,n,Set(ARG2=${ARG2}p) exten => screen,n,Return() exten => cf,1,Set(CFAMPUSER=${IF($["${AMPUSER}"=""]?${CALLERID(number)}:${AMPUSER})}) exten => cf,n,ExecIf($["${DB(CF/${DEXTEN})}"="${CFAMPUSER}" | "${DB(CF/${DEXTEN})}"="${REALCALLERIDNUM}" | "${CUT(CUT(BLINDTRANSFER,-,1),/,1)}" = "${DB(CF/${DEXTEN})}" | "${DEXTEN}"="${DB(CF/${DEXTEN})}"]?Return()) exten => cf,n,ExecIf($["${DB(AMPUSER/${DEXTEN}/cfringtimer)}" != "0" & "${DB(AMPUSER/${DEXTEN}/cfringtimer)}" != ""]?Set(ARG1=${IF($["${DB(AMPUSER/${DEXTEN}/cfringtimer)}"="-1"]? : ${DB(AMPUSER/${DEXTEN}/cfringtimer)})})) exten => cf,n,ExecIf($["${DB(AMPUSER/${DEXTEN}/cfringtimer)}" == "0"]?Set(ARG1=${IF($["${DB(FREEPBXCONF/CFRINGTIMERDEFAULT)}"="-1"]? : ${DB(FREEPBXCONF/CFRINGTIMERDEFAULT)})})) exten => cf,n,Set(DEXTEN=${IF($["${CFIGNORE}"=""]?"${DB(CF/${DEXTEN})}#": )}) exten => cf,n,ExecIf($["${DEXTEN}"!=""]?Return()) exten => cf,n,Set(DIALSTATUS=NOANSWER) exten => cf,n,Return() exten => qwait,1,ExecIf($["${SAVEDCIDNAME}" = ""]?Set(__SAVEDCIDNAME=${CALLERID(name)})) exten => qwait,n,Set(ELAPSED=${MATH($[${EPOCH}+30-${QUEUEWAIT}]/60,int)}) exten => qwait,n,Set(CALLERID(name)=M${ELAPSED}:${SAVEDCIDNAME}) exten => qwait,n,Return() exten => ctset,1,Set(DB(CALLTRACE/${DEXTEN})=${CALLERID(number)}) exten => ctset,n,Return() exten => ctclear,1,Noop(Deleting: CALLTRACE/${DEXTEN} ${DB_DELETE(CALLTRACE/${DEXTEN})}) exten => ctclear,n,Return() exten => dstring,1,Set(DSTRING=) exten => dstring,n,Set(DEVICES=${DB(AMPUSER/${DEXTEN}/device)}) exten => dstring,n,ExecIf($["${DEVICES}"=""]?Return()) exten => dstring,n,ExecIf($["${DEVICES:0:1}"="&"]?Set(DEVICES=${DEVICES:1})) exten => dstring,n,Set(LOOPCNT=${FIELDQTY(DEVICES,&)}) exten => dstring,n,Set(ITER=1) exten => dstring,n(begin),Set(THISDIAL=${DB(DEVICE/${CUT(DEVICES,&,${ITER})}/dial)}) exten => dstring,n,GosubIf($["${ASTCHANDAHDI}" = "1"]?zap2dahdi,1()) exten => dstring,n,GotoIf($["${THISDIAL:0:5}"!="PJSIP"]?docheck) exten => dstring,n,Noop(Debug: Found PJSIP Destination ${THISDIAL}) exten => dstring,n,GotoIf($[ ${REGEX("(/.+/|@)" ${THISDIAL})} = 1 ]?doset) exten => dstring,n,Noop(Debug: Updating PJSIP Destination with PJSIP_DIAL_CONTACTS) exten => dstring,n,Set(THISDIAL=${PJSIP_DIAL_CONTACTS(${THISDIAL:6})}) exten => dstring,n(docheck),GotoIf($["${THISDIAL}"=""]?skipset) exten => dstring,n(doset),Set(DSTRING=${DSTRING}${THISDIAL}&) exten => dstring,n(skipset),Set(ITER=$[${ITER}+1]) exten => dstring,n,GotoIf($[${ITER}<=${LOOPCNT}]?begin) exten => dstring,n,ExecIf($["${DSTRING:-1}"!="&"]?Return()) exten => dstring,n,Set(DSTRING=${DSTRING:0:$[${LEN(${DSTRING})}-1]}) exten => dstring,n,Return() exten => dlocal,1,Set(DSTRING=${IF($["${ARG1}"=""]?${DEXTEN:0:${MATH(${LEN(${DEXTEN})}-1,int)}}:Local/${DEXTEN:0:${MATH(${LEN(${DEXTEN})}-1,int)}}@from-internal/n)}) exten => dlocal,n,Set(USEGOTO=${IF($["${ARG1}"=""]?1:0)}) exten => dlocal,n,Return() exten => zap2dahdi,1,ExecIf($["${THISDIAL}" = ""]?Return()) exten => zap2dahdi,n,Set(NEWDIAL=) exten => zap2dahdi,n,Set(LOOPCNT2=${FIELDQTY(THISDIAL,&)}) exten => zap2dahdi,n,Set(ITER2=1) exten => zap2dahdi,n(begin2),Set(THISPART2=${CUT(THISDIAL,&,${ITER2})}) exten => zap2dahdi,n,ExecIf($["${THISPART2:0:3}" = "ZAP"]?Set(THISPART2=DAHDI${THISPART2:3})) exten => zap2dahdi,n,Set(NEWDIAL=${NEWDIAL}${THISPART2}&) exten => zap2dahdi,n,Set(ITER2=$[${ITER2} + 1]) exten => zap2dahdi,n,GotoIf($[${ITER2} <= ${LOOPCNT2}]?begin2) exten => zap2dahdi,n,Set(THISDIAL=${NEWDIAL:0:$[${LEN(${NEWDIAL})}-1]}) exten => zap2dahdi,n,Return() exten => s-TORTURE,1,Goto(app-blackhole,musiconhold,1) exten => s-TORTURE,n,Macro(hangupcall,) exten => s-DONTCALL,1,Answer exten => s-DONTCALL,n,Wait(1) exten => s-DONTCALL,n,Zapateller() exten => s-DONTCALL,n,Playback(ss-noservice) exten => s-DONTCALL,n,Macro(hangupcall,) exten => s-CHANUNAVAIL,1,Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM}) exten => s-CHANUNAVAIL,n,ExecIf($["${IVR_RETVM}"!="RETURN" | "${IVR_CONTEXT}"=""]?Hangup()) exten => s-CHANUNAVAIL,n,Return() exten => s-NOANSWER,1,Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM}) exten => s-NOANSWER,n,ExecIf($["${IVR_RETVM}"!="RETURN" | "${IVR_CONTEXT}"=""]?Hangup()) exten => s-NOANSWER,n,Return() exten => s-BUSY,1,Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM}) exten => s-BUSY,n,ExecIf($["${IVR_RETVM}"!="RETURN" | "${IVR_CONTEXT}"=""]?Hangup()) exten => s-BUSY,n,Return() ;--== end of [macro-dial-one] ==--;
-
11-01-18, 14:24 Απάντηση: call waiting #9
υποθέτω ότι το παραπάνω το ρίχνω στο extensions.conf στο τέλος.
πως το περνάω στο dialplan μου?
το extensions.conf μου έχει το εξής.
Κώδικας:[DefaultPlan] exten => _XXXXXXXXXX,1,Dial(SIP/VoipGate/${EXTEN},120,Tt) exten => _XXXXXXXXXX,1,Busy() exten => _4XX,2,Answer() exten => _4XX,3,VoiceMail(${EXTEN}@Office,su) exten => _4XX,4,HangUp() exten => _4XX,102,Answer() exten => _4XX,103,VoiceMail(${EXTEN}@Office,sb) exten => _4XX,104,HangUp(
-
11-01-18, 15:05 Απάντηση: call waiting #10
Ναι στο τέλος του extensions.conf τα βάζεις. Στο context των εσωτερικών θα πρέπει να βάλεις τις παρακάτω γραμμές στην αρχή του
Κώδικας:include => app-callwaiting-cwoff include => app-callwaiting-cwon
-
31-01-18, 16:26 Απάντηση: call waiting #11
μου έχει σπάσει τα νεύρα. τι έχω κάνει μέχρι τώρα:
ΣτοΚώδικας:extensions.conf
Κώδικας:[app-callwaiting-cwoff] include => app-callwaiting-cwoff-custom exten => *71,1,Macro(user-callerid,) exten => *71,n,Set(CONNECTEDLINE(name-charset,i)=utf8) exten => *71,n,Set(CONNECTEDLINE(name,i)=Call Waiting: OFF) exten => *71,n,Set(CONNECTEDLINE(num,i)=${AMPUSER}) exten => *71,n,Answer exten => *71,n,Wait(1) exten => *71,n,Noop(Deleting: CW/${AMPUSER} ${DB_DELETE(CW/${AMPUSER})}) exten => *71,n(hook_1),Playback(call-waiting&de-activated) exten => *71,n,Macro(hangupcall,) ;--== end of [app-callwaiting-cwoff] ==--; [app-callwaiting-cwon] include => app-callwaiting-cwon-custom exten => *70,1,Macro(user-callerid,) exten => *70,n,Set(CONNECTEDLINE(name-charset,i)=utf8) exten => *70,n,Set(CONNECTEDLINE(name,i)=Call Waiting: ON) exten => *70,n,Set(CONNECTEDLINE(num,i)=${AMPUSER}) exten => *70,n,Answer exten => *70,n,Wait(1) exten => *70,n,Set(DB(CW/${AMPUSER})=ENABLED) exten => *70,n(hook_1),Playback(call-waiting&activated) exten => *70,n,Macro(hangupcall,) ;--== end of [app-callwaiting-cwon] ==--;
Κώδικας:extensions.conf
Κώδικας:[Default] include => app-callwaiting-cwoff include => app-callwaiting-cwon
-
31-01-18, 16:37 Απάντηση: call waiting #12
Ρίξε και αυτά μέσα στο extensions.conf στο τέλος
Spoiler:
-
26-02-18, 11:13 Απάντηση: call waiting #13
επανέρχομαι γιατί δεν βρήκα άκρη.
-
27-02-18, 11:20 Απάντηση: call waiting #14
Αφαίρεσε τα παραπάνω που σου πρότειναν.
Βάλε μέσα στο dialplan το παρακάτω κομμάτι
exten => 456,1,Set(DB(test/count)=1)
exten => 456,n,Set(COUNT=${DB(test/count)})
exten => 456,n,Νoop(${COUNT})
και μετά καλέσε από ένα εσωτερικό σου το 456.
Δημοσίευσε τι σου βγάζει στο cli.
Επίσης κάνε την εξής δοκιμή, κάλεσε μία από τις voip συσκευές που έχεις, απάντα και την ώρα που "μιλάς" με το άλλο εσωτερικό κάλεσε από ένα τρίτο εσωτερικό πάλι την voip συσκευή και πες μας τι γίνεται.
-
28-02-18, 11:13 Απάντηση: call waiting #15
στο extensions.conf έβαλα τον παραπάνω κώδικα και τώρα είναι ως εξής:
Κώδικας:[globals] [default] exten => _X!,1,Congestion() [AllCalls] exten => _X!,1,GoTo(DefaultPlan,${EXTEN},1) exten => _X!,2,Busy(3) exten => 600,1,Answer() exten => 600,2,Dial(SIP/600,60) exten => 600,3,Playback(vm-nobodyavail) exten => 600,4,VoiceMail(600@main) exten => 600,5,Hangup() exten => 601,1,Answer() exten => 601,2,Dial(SIP/601,60) exten => 601,3,Playback(vm-nobodyavail) exten => 601,4,VoiceMail(601@main) exten => 601,5,Hangup() exten => 602,1,Answer() exten => 602,2,Dial(SIP/602,60) exten => 602,3,Playback(vm-nobodyavail) exten => 602,4,VoiceMail(602@main) exten => 602,5,Hangup() exten => 603,1,Answer() exten => 603,2,Dial(SIP/603,60) exten => 603,3,Playback(vm-nobodyavail) exten => 603,4,VoiceMail(603@main) exten => 603,5,Hangup() [DefaultPlan] exten=> _5XX,1,dial(SIP/AstA/${EXTEN}, 60) exten=> _3XXX.,1,dial(SIP/AstA/0${EXTEN:1}, 60) ;me 3 vgazo exoteriki apo to trunk tou AstA poy vgazei me 0 ekei. exten=> _4XXX.,1,dial(SIP/AstA/0${EXTEN:1}, 60) ;me 4 vgazo exoteriki apo to trunk tou AstA poy vgazei me 9 ekei. exten => _0X.,1,Dial(SIP/CYTA/${EXTEN:1},120,KT) exten => _0X.,n,Busy() exten => _9X.,1,Dial(SIP/HOL/${EXTEN:1},120,KT) exten => _9X.,n,Busy() ;Test call waiting exten => 656,1,Set(DB(test/count)=1) exten => 656,n,Set(COUNT=${DB(test/count)}) exten => 656,n,Νoop(${COUNT}) exten => _*XXX,1,Answer() exten => _*XXX,2,Hangup() exten => 699,1,VoiceMailMain(@Office) exten => 699,2,HangUp() exten => voicemail,1,VoiceMailMain(${CALLERID(num)}@Office) exten => voicemail,2,HangUp() [DialIn] exten => _6XX,1,Dial(SIP/${EXTEN},15,Tr)
όταν καλώ απευθείας το νούμερο 656 τότε έχω:
Κώδικας:== Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 -- Executing [656@AllCalls:1] Goto("SIP/603-00000009", "DefaultPlan,656,1") in new stack -- Goto (DefaultPlan,656,1) -- Executing [656@DefaultPlan:1] Set("SIP/603-00000009", "DB(test/count)=1") in new stack [Feb 28 09:53:43] WARNING[1104][C-00000005]: func_db.c:180 function_db_write: DB: Error writing value to database. -- Executing [656@DefaultPlan:2] Set("SIP/603-00000009", "COUNT=") in new stack [Feb 28 09:53:43] WARNING[1104][C-00000005]: pbx.c:4869 pbx_extension_helper: No application 'Νoop' for extension (DefaultPlan, 656, 3) == Spawn extension (DefaultPlan, 656, 3) exited non-zero on 'SIP/603-00000009' AstB*CLI>
αν το 602 καλέσει το 600 και ενώ μιλάνε τους καλέσει το 603:
Κώδικας:AstB*CLI> sip show peers Name/username Host Dyn Forcerport Comedia ACL Port Status Description 600/600 192.168.1.97 D Yes Yes 5060 OK (13 ms) 601/601 192.168.1.98 D Yes Yes 5060 OK (13 ms) 602/602 192.168.1.99 D Yes Yes 5060 OK (13 ms) 603/603 192.168.1.151 D Yes Yes 33079 OK (6 ms) 604 (Unspecified) D Yes Yes 0 UNKNOWN AstB/ast 192.168.1.72 Yes Yes 5060 OK (1 ms) AstB*CLI> == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 -- Executing [600@AllCalls:1] Answer("SIP/602-00000010", "") in new stack -- Executing [600@AllCalls:2] Dial("SIP/602-00000010", "SIP/600,60") in new stack == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 -- Called SIP/600 -- SIP/600-00000011 is ringing -- SIP/600-00000011 answered SIP/602-00000010 -- Remotely bridging SIP/602-00000010 and SIP/600-00000011 == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 -- Executing [600@AllCalls:1] Answer("SIP/603-00000012", "") in new stack [Feb 28 10:00:41] NOTICE[1112][C-0000000c]: res_rtp_asterisk.c:4685 ast_rtp_read: Unknown RTP codec 95 received from '192.168.1.151:46720' -- Executing [600@AllCalls:2] Dial("SIP/603-00000012", "SIP/600,60") in new stack == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 -- Called SIP/600 [Feb 28 10:00:41] NOTICE[1112][C-0000000c]: channel.c:4301 __ast_read: Dropping incompatible voice frame on SIP/603-00000012 of format ulaw since our native format has changed to (gsm) -- SIP/600-00000013 is ringing -- Started music on hold, class 'default', on SIP/602-00000010 -- SIP/600-00000013 answered SIP/603-00000012 -- Remotely bridging SIP/603-00000012 and SIP/600-00000013 -- Stopped music on hold on SIP/602-00000010 == Spawn extension (AllCalls, 600, 2) exited non-zero on 'SIP/602-00000010' == Spawn
τα εσωτερικά μου είναι 600-602 Grandstream IP phones, 603 Zoiper softphone.
Παρόμοια Θέματα
-
Η υπηρεσία COSMOTE WiFi Calling, που συνδυάζει 4G και WiFi, διαθέσιμη πλέον για πελάτες συμβολαίου και καρτοκινητής
Από nnn στο φόρουμ ΕιδήσειςΜηνύματα: 84Τελευταίο Μήνυμα: 12-08-21, 02:00 -
COSMOTE WiFi Calling: Σήμα και στα πιο δύσκολα σημεία με συνδυασμό 4G και WiFi
Από nnn στο φόρουμ ΕιδήσειςΜηνύματα: 229Τελευταίο Μήνυμα: 29-03-19, 16:46 -
Elastix call Recordings
Από mazout στο φόρουμ Voice over IP (VoIP) SoftwareΜηνύματα: 4Τελευταίο Μήνυμα: 17-05-17, 09:51
Bookmarks