[asterisk-users] Problem redirecting user running a Dynamic feature
david
lists.digium.com at spam.lublink.net
Tue Feb 24 21:14:36 CST 2009
Hello,
Here is my setup :
Telephone 1 ( GXP 2000 )
Telephone 2 ( SPA942 )
Asterisk 1.4.17 ( same behaviour on Asterisk 1.4.23.1 )
Scenario: I don't like the default asterisk transfer feature, so I am
trying to write my own.
What I did :
1. Added to dynamic features #3 with AGI pointing to my php script
2. PHP script asks the user to enter his/her extension
3. PHP connects to Asterisk Manager and sends a redirect command on the
other channel
4. PHP tells user the call has been transfered and wishes the user a
good day.
5. Script ends.
What should happen :
1. Telephone1 calls telephone2
2. Telephone2 enters #3
3. Telephone1 hears on hold music and Telephone2 enters the new extension
4. PHP calls Asterisk Manager to transfer Telephone1 to the new extension
5. Telephone2 hears a message wishing the user a good day
6. Telephone2 hangup
What actually happens :
1. Ok
2. Ok
3. Ok
4. PHP calls Asterisk Manager to transfer Telephone1, but Telephone one
does not transfer it just has dead air
5. Telephone2 hears a message wishing the user a good day
6. Telephone2 hangs up
7. Telephone1 disconnects
8. Telephone1 ( according to asterisk ) completes the transfer the the
new extension
9. Asterisk plays a file, realises that Telephone1 is gone and disconnects.
Here is part of the logs :
telephone2 = 081c5350
telephone1 = 081bfe98
I am transfering the caller to extension 860809864 in default context
====================================
-- Called telephone2 at voip.myserver.tld
-- SIP/voip.myserver.tld-081c5350 is ringing
-- SIP/voip.myserver.tld-081c5350 answered
SIP/voip.myserver.tld-081bfe98
-- Feature Found: df3 exten: df3
-- Launched AGI Script /opt/customTransfer.php
== Parsing '/etc/asterisk/manager.conf': Found
== Parsing '/etc/asterisk/manager.d/blank.conf': Found
== Manager 'theking' logged on from 127.0.0.1
-- PHP Log : Sending to SIP/voip.myserver.tld-081bfe98 to 860809864
== Manager 'theking' logged off from 127.0.0.1
-- AGI Script /opt/customTransfer.php completed, returning 0
== Spawn extension (default, 860809864, 0) exited non-zero on
'SIP/voip.myserver.tld-081bfe98'
-- Executing [860809864 at default:1]
NoOp("SIP/voip.myserver.tld-081bfe98", "Receiving call to 860809864") in
new stack
-- Executing [860809864 at default:2]
Set("SIP/voip.myserver.tld-081bfe98", "__TRANSFER_CONTEXT=default") in
new stack
-- Executing [860809864 at default:3]
AGI("SIP/voip.myserver.tld-081bfe98", "/opt/itworks.php") in new stack
-- Launched AGI Script /opt/itworks.php
== Spawn extension (default, 860809864, 3) exited non-zero on
'SIP/voip.myserver.tld-081bfe98'
cain*CLI>
=========================================
If I run the customTransfer.php in bash while the telephone is NOT in
dynamic features, it works perfectly. It seems like that if telephone1
is held while telephone 2 is in a dynamic feature, the redirect fails.
Additionally, if I do it backwards and the calling user transfers the
called user using #3, it works perfectly without any problems.
What have I done wrong ? Is there a better way to implement a custom
transfer feature?
Thanks,
David
More information about the asterisk-users
mailing list