Asterisk 11- program a distinctive 'call transfer' custom ring tone
$30-250 CAD
Closed
Posted about 9 years ago
$30-250 CAD
Paid on delivery
Asterisk-11.14.2
Snom-870 FW 8.7
We wish to have a custom context written that identifies when any call has been forwarded to any extension from any other extension. This must work in conjunction with the existing contexts that sets one ring-tone for outside calls and a different ring-tone for inside calls. The internal transfer ring-tone must be different from either and the first two behaviours must not be interfered with.
Presently we have this:
;# START
; Set Snom default (Ringer1)
exten => _417XX,n,Set(AlertSnom=<[login to view URL]>\;info=)
; alert-external, alert-group and alert-internal are Snom predefined values.
exten => _417XX,n,Set(AlertExternalCall=alert-external)
; alert_external_call, alert_internal_call and alert_internal_transfer are
; customized alert-info-text values related to specific alert-info-files
; (Ringer[0-9]) and set in Snom phone provisioning files
exten => _417XX,n,Set(AlertExternalCall=alert_external_call)
; Just recall, this override is setup to only consider internal
; calls so the forgoing is just noise to make the overall context
; clear and to show the conventions.
exten => _417XX,n,Set(AlertInternalCall=alert_internal_call)
; Now we test to see if this is a station to station internal call
; You can use the following comparison operators in these lines:
; = != < > <= >=
; Note that "" surround both the items in the comparison and are
; considered part of the values compared. If either are true
; then we branch to notfromlocal. Otherwise we fall through.
exten => _417XX,n,GotoIf( $[$["${CallerIDNum}" > "41799"] || $["${CallerIDNum}" < "41700"]]?notfromlocal:)
; If we reach here then the caller is within the upper and lower bounds
; so we reset the alert-info header to our internal custom ring-tone
exten => _417XX,n,Set(__ALERT_INFO=${AlertSnom}${AlertInternalCall})
;This is the (notfromlocal) entry point.
exten => _417XX,n(notfromlocal),Goto(from-internal-original-override,${EXTEN},1)
;The following three lines must not be changed!
exten => _X.,1,Goto(from-internal-original-override,${EXTEN},1)
exten => s,1,Goto(from-internal-original-override,s,1)
exten => h,1,Macro(hangupcall)
;# END
What we want is to detect when a call answered at one extension is forwarded to a second extension and alter the ring-tone used for that call. In this case we wish to set a ring-tone Alert-Info string to "alert_internal_transfer".
hi
task is doable if you use asterisk or sip transfer.
if you use call attended transfer, then only thing i can do is set alert if phone have SECOND call to same phone. sorry, no way determine if that call expected be transfered or person just call other phone for consultation.
i am best voip developer here
have more then 15 years experience, check my feadback
I have done a lot of asterisk projects. Please check my profile. It is possible to configure that the calls that are forwarded to have a special string and you will know that the call are from an extension.
I would suggest detecting and handling transfers in a specific context where the ALERTINFO could be set different from those already used (for distincting internal and external calls).
It would be interesting wheter the ALERTINFO on transfering calls should even be distincted by the original ALERT: In particular it would be possible to differentiate transfer-ALERTINFOS when the original call was an external one from those where the original call was an internal one. But that's just an additional suggestion for the case You'll find it useful.