Hi,
I just installed the ThirdLine Multi-Tentant version and have setup a test trunk to a provider as well as a extension.
So far everything works, my phone works, I have created outbound rules and they have been applied so outbound calls works without problems.
But I haven't been able to make inbound calls. When I follow the debug log I get the following:
2010-09-28 10:03:17] VERBOSE[13100] pbx.c: -- Executing [s@from-outside:2] Set("SIP/CellIP-00000000", "__INCOMINGCLI=0763411153") in new stack
[2010-09-28 10:03:17] VERBOSE[13100] pbx.c: -- Executing [s@from-outside:3] Goto("SIP/CellIP-00000000", "from-outside-redir,s,1") in new stack
[2010-09-28 10:03:17] VERBOSE[13100] pbx.c: -- Goto (from-outside-redir,s,1)
[2010-09-28 10:03:17] VERBOSE[13100] pbx.c: -- Sent into invalid extension 's' in context 'from-outside-redir' on SIP/CellIP-00000000
[2010-09-28 10:03:17] VERBOSE[13100] pbx.c: -- Executing [i@from-outside-redir:1] Progress("SIP/CellIP-00000000", "") in new stack
[2010-09-28 10:03:17] VERBOSE[13100] pbx.c: -- Executing [i@from-outside-redir:2] Wait("SIP/CellIP-00000000", ".5") in new stack
[2010-09-28 10:03:18] VERBOSE[13100] pbx.c: -- Executing [i@from-outside-redir:3] Zapateller("SIP/CellIP-00000000", "") in new stack
[2010-09-28 10:03:20] VERBOSE[13100] pbx.c: -- Executing [i@from-outside-redir:4] Playback("SIP/CellIP-00000000", "discon-or-out-of-service,noanswer") in new stack
[2010-09-28 10:03:20] WARNING[13100] file.c: File discon-or-out-of-service does not exist in any format
[2010-09-28 10:03:20] WARNING[13100] file.c: Unable to open discon-or-out-of-service (format 0x4 (ulaw)): No such file or directory
[2010-09-28 10:03:20] WARNING[13100] app_playback.c: ast_streamfile failed on SIP/CellIP-00000000 for discon-or-out-of-service,noanswer
[2010-09-28 10:03:20] VERBOSE[13100] pbx.c: -- Executing [i@from-outside-redir:5] Wait("SIP/CellIP-00000000", "1") in new stack
[2010-09-28 10:03:21] VERBOSE[13100] pbx.c: -- Executing [i@from-outside-redir:6] Hangup("SIP/CellIP-00000000", "1") in new stack
[2010-09-28 10:03:21] VERBOSE[13100] pbx.c: == Spawn extension (from-outside-redir, i, 6) exited non-zero on 'SIP/CellIP-00000000'
Obviously there is something wrong as asterisk does not find a way to route the call. If I try to look trough [from-outside-redir] I have the following:
[from-outside]
exten => _X.,1,Wait(1)
exten => _X.,n,Set(__INCOMINGCLI=${CALLERID(num)})
exten => _X.,n,Goto(from-outside-redir,${EXTEN},1)
exten => _+X.,1,Wait(1)
exten => _+X.,n,Set(__INCOMINGCLI=${CALLERID(num)})
exten => _+X.,n,Goto(from-outside-redir,${EXTEN},1)
exten => s,1,Wait(1)
exten => s,n,Set(__INCOMINGCLI=${CALLERID(num)})
exten => s,n,Goto(from-outside-redir,${EXTEN},1)
[from-outside-redir]
#include inbound.include
#include inbound_actions.include
....
The inbound* files as follows: (Number has been replaced with XXXXXXXX
Inbound.actions
[from-outside-468XXXXXXXX-any]
exten => 468XXXXXXXX,1,Set(__tenant=thirdlane)
exten => 468XXXXXXXX,2,Set(CDR(userfield)=thirdlane)
exten => 468XXXXXXXX,3,Set(MOH=${DB(TL/MOH/default${TL_DASH}${tenant})})
exten => 468XXXXXXXX,n,GotoIf($["${MOH}" = ""]?nomoh)
exten => 468XXXXXXXX,n,Set(CHANNEL(musicclass)=${MOH})
exten => 468XXXXXXXX,n(nomoh),Macro(tl-goto-userextension,100,Test)
Inbound.source
[468XXXXXXXX]
schedule_0=any
channels=
action_0=tl-goto-userextension
var_0=
description=Whatever
billable=no
tenant=thirdlane
args_0=100,Test
routetype=operator
Im not sure if asterisk does not detect the A-numner correct from my SIP trunk or if I have done something obvious wrong when creating the DDI or the inbound rule?
problem seems pretty obvious
problem seems pretty obvious to me...
[2010-09-28 10:03:17] VERBOSE[13100] pbx.c: -- Sent into invalid extension 's' in context 'from-outside-redir' on SIP/CellIP-00000000
you either are not getting a destination TN at all, or its being sent via equipment in a non-standard way. Some European clients have reported the latter and had to resulted to special programming to parse an innocuous header out of the SIP headers to delimit the destination TN (DID).
email off forum and I can explain further, perhaps help you write the script as well.
same problem with voipnow trunk
Im having the same problem because my sip trunk provider gives as CLI the accountname which contains an "*", like 123*456.
When i try to add that as DID it is not accepted (missing or invalid), any workaround for this ?
you can send it to a
you can send it to a temporary context that modifies the extension and sends it over to from-outside.
Thanks, that makes sense but
Thanks, that makes sense but can you point me to the right place ? Where and how do i make that context ? I'm testing the multitenant, not that comfortable with hacking the config files yet.
I've added this in
I've added this in user_extensions.include
[custom-get-did-from-sip]
exten => s,1,Noop(Fixing DID using information from SIP TO header)
exten => s,n,Set(pseudodid=${SIP_HEADER(To)})
exten => s,n,Set(pseudodid=${pseudoid:0:4}${pseudoid:5})
exten => s,n,Goto(from-outside-redir,${pseudoid},1)
but no change, what am i missing ?
change this line from: exten
change this line from:
exten => s,n,Goto(from-outside-redir,${pseudoid},1)
to:
exten => s,n,Goto(from-outside,${pseudoid},1)
and in sip.conf change the trunk's context= entry from from-outside to context=custom-get-did-from-sip
it should work as long as the 's' extension is good... watch the CLI... if it is trying to reach a specific extension instead of 's' you can do '_X.' instead of 's' in your dialplan.
Thanks Erik, It still doesnt
Thanks Erik,
It still doesnt seem to pick up. Is this Set(pseudodid=${SIP_HEADER(To)}) correct ?
[2010-12-10 16:31:22] VERBOSE[25405] pbx.c: -- Executing [0356*0004@from-outside:1] Wait("SIP/31207163645-00000003", "1") in new stack
[2010-12-10 16:31:23] VERBOSE[25405] pbx.c: -- Executing [0356*0004@from-outside:2] Set("SIP/31207163645-00000003", "__INCOMINGCLI=0356*0004") in new stack
[2010-12-10 16:31:23] VERBOSE[25405] pbx.c: -- Executing [0356*0004@from-outside:3] Goto("SIP/31207163645-00000003", "from-outside-redir,0356*0004,1") in new stack
[2010-12-10 16:31:23] VERBOSE[25405] pbx.c: -- Goto (from-outside-redir,0356*0004,1)
[2010-12-10 16:31:23] VERBOSE[25405] pbx.c: -- Sent into invalid extension '0356*0004' in context 'from-outside-redir' on SIP/31207163645-00000003
[2010-12-10 16:31:23] VERBOSE[25405] pbx.c: -- Executing [i@from-outside-redir:1] Progress("SIP/31207163645-00000003", "") in new stack
[2010-12-10 16:31:23] VERBOSE[25405] pbx.c: -- Executing [i@from-outside-redir:2] Wait("SIP/31207163645-00000003", ".5") in new stack
[2010-12-10 16:31:24] VERBOSE[25405] pbx.c: -- Executing [i@from-outside-redir:3] Zapateller("SIP/31207163645-00000003", "") in new stack
[2010-12-10 16:31:26] VERBOSE[25405] pbx.c: -- Executing [i@from-outside-redir:4] Playback("SIP/31207163645-00000003", "discon-or-out-of-service,noanswer") in new stack
[2010-12-10 16:31:26] WARNING[25405] file.c: File discon-or-out-of-service does not exist in any format
[2010-12-10 16:31:26] WARNING[25405] file.c: Unable to open discon-or-out-of-service (format 0x4 (ulaw)): No such file or directory
[2010-12-10 16:31:26] WARNING[25405] app_playback.c: ast_streamfile failed on SIP/31207163645-00000003 for discon-or-out-of-service,noanswer
[2010-12-10 16:31:26] VERBOSE[25405] pbx.c: -- Executing [i@from-outside-redir:5] Wait("SIP/31207163645-00000003", "1") in new stack
[2010-12-10 16:31:27] VERBOSE[25405] pbx.c: -- Executing [i@from-outside-redir:6] Hangup("SIP/31207163645-00000003", "1") in new stack
you still are not directing
you still are not directing the call to this context.. which means your trunk is not set up correctly.
in [general] section of sip.conf make sure allowguest=no
It is (was) set to no When im
It is (was) set to no
When im looking at the trunk settings username and Caller ID are set to "0356", looks like the form lost the *0004 ie having problems too with the "*". Could that be the problem?
your CLI output never shows
your CLI output never shows any evidence what so ever that your call went into custom-get-did-from-sip, which means you didnt change your trunk. perhaps you should paste the contents of the sip.conf entry for [31207163645] .. did you reload after making your changes?
My bad, only set it as the
My bad, only set it as the default context while the trunk was already made.
Some progress:
[2010-12-10 17:45:15] VERBOSE[30329] pbx.c: -- Executing [0356*0004@custom-get-did-from-sip:1] NoOp("SIP/31207163645-00000001", "Fixing DID using information from SIP TO header") in new stack
[2010-12-10 17:45:15] VERBOSE[30329] pbx.c: -- Executing [0356*0004@custom-get-did-from-sip:2] Set("SIP/31207163645-00000001", "pseudodid=") in new stack
[2010-12-10 17:45:15] VERBOSE[30329] pbx.c: -- Executing [0356*0004@custom-get-did-from-sip:3] Set("SIP/31207163645-00000001", "pseudodid=") in new stack
[2010-12-10 17:45:15] VERBOSE[30329] pbx.c: -- Executing [0356*0004@custom-get-did-from-sip:4] Goto("SIP/31207163645-00000001", "from-outside,,1") in new stack
[2010-12-10 17:45:15] VERBOSE[30329] pbx.c: -- Goto (from-outside,0356*0004,1)
But how to just remove that "*" ? apparently something goes wrong there.
well apparently the DID isnt
well apparently the DID isnt in the TO header... can you get a debug capture of the invite message?
ok, got it working, just came
ok, got it working, just came down to a faulty CUT. This works:
[custom-get-did-from-sip]
exten => _X.,1,Noop(Fixing DID using information from SIP TO header)
exten => _X.,n,NOOP(Header is: ${SIP_HEADER(TO)})
exten => _X.,n,Set(pseudodid=${SIP_HEADER(TO)})
exten => _X.,n,Set(pseudodid=${CUT(pseudodid,@,1)})
exten => _X.,n,Set(pseudodid=${CUT(pseudodid,:,2)})
exten => _X.,n,Noop(Pseudo is: ${pseudodid})
exten => _X.,n,Set(pseudodid=${pseudodid:0:4}${pseudodid:5})
exten => _X.,n,Noop(Pseudo is: ${pseudodid})
exten => _X.,n,Goto(from-outside,${pseudodid},1)
so your saying that the DID
so your saying that the DID is actually on both sides of the asterisk? Thats just a really wierd way of formatting.
I know, we've seen more
I know, we've seen more problems with other systems. They're using the voipnow system and somehow everything is build on that 0000*0000 format.
So, in TL i have to make a did without the asterisk, route incoming to the script to get rid of it and then it works. Not convenient if you have many different trunks as you always have to edit the sip.conf.
The last two source should of course be include inbound.include and include inbound_actions.include