返回列表 發帖

Incoming Dial multiple channels, partially delayed

本帖最後由 bubblestar 於 2011-6-4 14:31 編輯

This is just a revision sharing that we had discussed before.  I post it again for those who may still need it.

Prerequisite (PHone and ATA Devices can be optional):
Ext. 201 and 202 are sip extensions registered in PSTN TAB SPA3000 and SPA3102 respectively.
Ext. 301 and 302 are sip extensions registered in Siemens IP Phone and Linksys SPA942 Phone respestively.

Make a special extension where you could provide the delay and the numbers you want to dial, for example:

extensions.conf

exten => _900XXXXX,1,Wait(${EXTEN:3:2})
exten => _900XXXXX,2,Dial(SIP/${EXTEN:5})

Then in the incoming context you could use the Local channel construct and dial:

exten => s,1,Dial(SIP/200&SIP/201&LOCAL/90015300&LOCAL/90015301)

In the above example, when someone dials in,  200 and 201 extension will ring immediately, and 300 and 301 will start ringing after 15 seconds. After to 900 the first two digits are for the delay before start ringing and the last three are the extension that should be called.

The trick here is that instead of simply using two Dial statements after each other we make sure we ring each phone only once; that prevents:
a) potential problems with SIP devices needing some wrap up time before being able to take another call, and
b) avoids too many "missed call" entires in the phone's interface.

回復 2# bubblestar

Thanks

TOP

本帖最後由 bubblestar 於 2011-6-4 14:41 編輯

A more simple follow me style incoming rings can be set up as below:

exten=s,1,NoOp(test)
exten=s,2,Answer()
exten=s,3,Dial(SIP/8002&SIP/8003,20,rtT) 電話接入到內線8002及8003,一齊響鈴
exten=s,4,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?:5:6) 二十秒無人接去下一個內線8001或指定的號碼(手機或另一PSTN也可以,但要有兩條PSTN線)
exten=s,5,Dial(SIP/8001,20,rtT) 內線8001接線後二十秒也無人接會接去留言信箱
exten=s,6,VoiceMail(8001,u)
exten=s,7,Hangup()

TOP

返回列表