Hi, I'm facing a strange dialplan issue with a PJSIP_DIAL_CONTACTS. When I try to call an offline endpoint with PJSIP_DIAL_CONTACTS, the dial command breaks and the call control go to hangup block instead of next priority. The error in CLI says "*Dial requires an argument (technology/resource)*". This error seems legit as there are no contacts for an offline endpoint. The dialplan should jump to the next priority. exten => 1001,1,Dial(${PJSIP_DIAL_CONTACTS(${EXTEN})}) exten => 1001,2,,NoOP(${DIALSTATUS}) exten => 1001,3,Dial(PJSIP/mytrunk/sip:${mob}@10.0.0.1) exten => h,1,NoOp() exten => h,n,NoOP(${DIALSTATUS}) ----------------------------------------------------------------------- If i try to dial the same offline endpoint with the below code snippet, it jumps to next prirorty. exten => 1001,1,Dial(PJSIP/${EXTEN}) exten => 1001,2,,NoOP(${DIALSTATUS}) exten => 1001,3,Dial(PJSIP/mytrunk/sip:${mob}@10.0.0.1) exten => h,1,NoOp() exten => h,n,NoOP(${DIALSTATUS}) The endpoint may register from multiple device, so I always have to dial it all contacts. Did anyone else face such problem? Thanks! Faheem -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20160720/947d31b8/attachment.html>
On Wed, Jul 20, 2016 at 9:58 AM, Faheem Muhammad <faheem2084 at gmail.com> wrote:> Hi, > I'm facing a strange dialplan issue with a PJSIP_DIAL_CONTACTS. > > When I try to call an offline endpoint with PJSIP_DIAL_CONTACTS, the dial > command breaks and the call control go to hangup block instead of next > priority. The error in CLI says "*Dial requires an argument > (technology/resource)*". > This error seems legit as there are no contacts for an offline endpoint. > The dialplan should jump to the next priority. > > exten => 1001,1,Dial(${PJSIP_DIAL_CONTACTS(${EXTEN})}) > exten => 1001,2,,NoOP(${DIALSTATUS}) > exten => 1001,3,Dial(PJSIP/mytrunk/sip:${mob}@10.0.0.1) > > exten => h,1,NoOp() > exten => h,n,NoOP(${DIALSTATUS}) > > ----------------------------------------------------------------------- > If i try to dial the same offline endpoint with the below code snippet, it > jumps to next prirorty. > exten => 1001,1,Dial(PJSIP/${EXTEN}) > exten => 1001,2,,NoOP(${DIALSTATUS}) > exten => 1001,3,Dial(PJSIP/mytrunk/sip:${mob}@10.0.0.1) > > exten => h,1,NoOp() > exten => h,n,NoOP(${DIALSTATUS}) > > The endpoint may register from multiple device, so I always have to dial > it all contacts. Did anyone else face such problem? >You need to examine if the returned dial string is empty in your dialplan. PJSIP_DIAL_CONTACTS returns an '&' separated list of available contacts. If there are no contacts the list is empty. Dial doesn't like an empty list. Richard -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20160720/576c70d6/attachment.html>
On 7/20/16 9:58 AM, Faheem Muhammad wrote:> Hi, > I'm facing a strange dialplan issue with a PJSIP_DIAL_CONTACTS. > > When I try to call an offline endpoint with PJSIP_DIAL_CONTACTS, the > dial command breaks and the call control go to hangup block instead of > next priority. The error in CLI says "*Dial requires an argument > (technology/resource)*". > This error seems legit as there are no contacts for an offline > endpoint. The dialplan should jump to the next priority. > > exten => 1001,1,Dial(${PJSIP_DIAL_CONTACTS(${EXTEN})}) > exten => 1001,2,,NoOP(${DIALSTATUS}) > exten => 1001,3,|Dial(PJSIP/mytrunk/sip:${mob||}||@10.0.0.1 > <http://10.0.0.1>||)| > > exten => h,1,NoOp() > exten => h,n,NoOP(${DIALSTATUS}) > > ----------------------------------------------------------------------- > If i try to dial the same offline endpoint with the below code > snippet, it jumps to next prirorty. > exten => 1001,1,Dial(PJSIP/${EXTEN}) > exten => 1001,2,,NoOP(${DIALSTATUS}) > exten => 1001,3,|Dial(PJSIP/mytrunk/sip:${mob||}||@10.0.0.1 > <http://10.0.0.1>||)| > | > | > exten => h,1,NoOp() > exten => h,n,NoOP(${DIALSTATUS}) > > The endpoint may register from multiple device, so I always have to > dial it all contacts. Did anyone else face such problem? >My solution to this problem was to use a gotoif and check if PJSIP_DIAL_CONTACTS has any contacts before trying to dial, if it does not then I skip the dial and goto the next step. So: exten => 1001,1,GotoIf($["${PJSIP_DIAL_CONTACTS(${EXTEN})}" = ""]?nocon) exten => 1001,n,Dial(${PJSIP_DIAL_CONTACTS(${EXTEN})}) exten => 1001,n(nocon),SomethingElse> --Telecomunicaciones Abiertas de M?xico S.A. de C.V. Carlos Ch?vez +52 (55)9116-91161 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20160720/2b11b19c/attachment.html>
Thanks Richord and Carlos. On Wednesday, 20 July 2016, Carlos Chavez <cursor at telecomabmex.com> wrote:> On 7/20/16 9:58 AM, Faheem Muhammad wrote: > > Hi, > I'm facing a strange dialplan issue with a PJSIP_DIAL_CONTACTS. > > When I try to call an offline endpoint with PJSIP_DIAL_CONTACTS, the dial > command breaks and the call control go to hangup block instead of next > priority. The error in CLI says "*Dial requires an argument > (technology/resource)*". > This error seems legit as there are no contacts for an offline endpoint. > The dialplan should jump to the next priority. > > exten => 1001,1,Dial(${PJSIP_DIAL_CONTACTS(${EXTEN})}) > exten => 1001,2,,NoOP(${DIALSTATUS}) > exten => 1001,3,Dial(PJSIP/mytrunk/sip:${mob}@10.0.0.1) > > exten => h,1,NoOp() > exten => h,n,NoOP(${DIALSTATUS}) > > ----------------------------------------------------------------------- > If i try to dial the same offline endpoint with the below code snippet, it > jumps to next prirorty. > exten => 1001,1,Dial(PJSIP/${EXTEN}) > exten => 1001,2,,NoOP(${DIALSTATUS}) > exten => 1001,3,Dial(PJSIP/mytrunk/sip:${mob}@10.0.0.1) > > exten => h,1,NoOp() > exten => h,n,NoOP(${DIALSTATUS}) > > The endpoint may register from multiple device, so I always have to dial > it all contacts. Did anyone else face such problem? > > My solution to this problem was to use a gotoif and check if > PJSIP_DIAL_CONTACTS has any contacts before trying to dial, if it does not > then I skip the dial and goto the next step. So: > > exten => 1001,1,GotoIf($["${PJSIP_DIAL_CONTACTS(${EXTEN})}" = ""]?nocon) > exten => 1001,n,Dial(${PJSIP_DIAL_CONTACTS(${EXTEN})}) > exten => 1001,n(nocon),SomethingElse > > -- > > Telecomunicaciones Abiertas de M?xico S.A. de C.V. > Carlos Ch?vez > +52 (55)9116-91161 > >-- Sent from Gmail Mobile -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20160720/2e0c99f8/attachment.html>