Sam Liang
2006-Jul-19 16:37 UTC
[asterisk-users] RE: [asterisk-dev] How to send DNIS(B-party number) in IAX trunk
Hi Rehan, I would like to make the my problem a little bit more clear. My test scheme is below: R1 R2 IAX trunk DX <-----> PORTASIP <------------> ASTERISK-root <------> Astrerisk-client DX connect to ISDN E1, says, got 100 Australian number from 61282138600 to 61282138699 assign to it. I create the route R1 without any problem. From PortaSIP, we pass the call by a sip trunk name R2, this one proved to be fine, since I can read from the real time log of the ASTERISK-root script that /var/lib/asterisk/agi-bin/dialparties.agi had already output the messages, said that it filter out the dnid=61282138622. The ASTERISK-root, according the dnid=61282138622, bridges the call invite through IAX trunk to invite the Asterisk-client. I can read from the Asterisk-client real time log as below: (ASTERISK-root with address 203.166.103.230) -- Accepting AUTHENTICATED call from 203.166.103.230: > requested format = g729, > requested prefs = (), > actual format = ulaw, > host prefs = (ulaw|alaw|gsm|g729), > priority = mine -- Executing Set("IAX2/isphone-2", "FROM_DID=s/0413509414") in new stack -- Executing Goto("IAX2/isphone-2", "ext-local|200|1") in new stack -- Goto (ext-local,200,1) -- Executing Macro("IAX2/isphone-2", "exten-vm|200|200") in new stack -- Executing Macro("IAX2/isphone-2", "user-callerid") in new stack -- Executing Set("IAX2/isphone-2", "AMPUSER=") in new stack -- Executing Set("IAX2/isphone-2", "EMERGENCYCID=") in new stack -- Executing Set("IAX2/isphone-2", "AMPUSERCIDNAME=") in new stack -- Executing GotoIf("IAX2/isphone-2", "1?6") in new stack -- Goto (macro-user-callerid,s,6) -- Executing NoOp("IAX2/isphone-2", "Using CallerID "" <0413509414>") in new stack -- Executing Set("IAX2/isphone-2", "FROMCONTEXT=exten-vm") in new stack -- Executing Macro("IAX2/isphone-2", "record-enable|200|IN") in new stack -- Executing GotoIf("IAX2/isphone-2", "0 > 0?2:4") in new stack -- Goto (macro-record-enable,s,4) -- Executing AGI("IAX2/isphone-2", "recordingcheck|20060719-143711|1153283831.27") in new stack -- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck recordingcheck|20060719-143711|1153283831.27: Inbound recording not enabled -- AGI Script recordingcheck completed, returning 0 -- Executing NoOp("IAX2/isphone-2", "No recording needed") in new stack -- Executing Macro("IAX2/isphone-2", "dial|15|tr|200") in new stack -- Executing AGI("IAX2/isphone-2", "dialparties.agi") in new stack -- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi -- dialparties.agi: priority = 1 -- dialparties.agi: callingani2 = 0 -- dialparties.agi: accountcode = -- dialparties.agi: channel = IAX2/isphone-2 -- dialparties.agi: callerid = 0413509414 -- dialparties.agi: context = macro-dial -- dialparties.agi: callington = 0 -- dialparties.agi: dnid = unknown -- dialparties.agi: request = dialparties.agi -- dialparties.agi: calleridname = unknown -- dialparties.agi: extension = s -- dialparties.agi: language = en -- dialparties.agi: uniqueid = 1153283831.27 -- dialparties.agi: callingpres = 0 -- dialparties.agi: type = IAX2 -- dialparties.agi: rdnis = unknown -- dialparties.agi: callingtns = 0 -- dialparties.agi: enhanced = 0.0 dialparties.agi: Caller ID name is 'unknown' number is '0413509414' dialparties.agi: Methodology of ring is 'none' -- dialparties.agi: Added extension 200 to extension map -- dialparties.agi: Extension 200 cf is disabled -- dialparties.agi: Extension 200 do not disturb is disabled > dialparties.agi: extnum: 200 > dialparties.agi: exthascw: 0 > dialparties.agi: exthascfb: 0 > dialparties.agi: extcfb: -- dialparties.agi: Checking CW and CFB status for extension 200 == Parsing '/etc/asterisk/manager.conf': Found == Parsing '/etc/asterisk/manager_custom.conf': Found == Manager 'admin' logged on from 127.0.0.1 -- dialparties.agi: Correct AMPMGRUSER and AMPMGRPASS > dialparties.agi: extstate: 0 == Manager 'admin' logged off from 127.0.0.1 dialparties.agi: Extension 200 is available...skipping checks -- dialparties.agi: DbSet CALLTRACE/200 to 0413509414 -- AGI Script dialparties.agi completed, returning 0 -- Executing Dial("IAX2/isphone-2", "IAX2/200|15|tr") in new stack -- Called 200 -- Call accepted by 61.29.101.98 (format ulaw) -- Format for call is ulaw -- IAX2/200-5 is ringing -- IAX2/200-5 answered IAX2/isphone-2 -- Attempting native bridge of IAX2/isphone-2 and IAX2/200-5 -- Hungup 'IAX2/200-5' == Spawn extension (macro-dial, s, 10) exited non-zero on 'IAX2/isphone-2' in macro 'dial' == Spawn extension (macro-dial, s, 10) exited non-zero on 'IAX2/isphone-2' in macro 'exten-vm' == Spawn extension (macro-dial, s, 10) exited non-zero on 'IAX2/isphone-2' -- Hungup 'IAX2/isphone-2'>From the log messages above us, I am sure the Asterisk-client can not getthe dnid, or the dnid = unknown is got by the /var/lib/asterisk/agi-bin/dialparties.agi. Consequently I must create a route in asterisk to said, DID=*/callerid=0413509414 will be route to extensions 200. That make the call from mobile 0413509414 to 821386[XX] go to extensions 200. But what I want to make for the client is, provided I can pass the DNID to the customer Premium, DID=82138622 to extension 200, DID=32138600 to receptionist, etc... I am stuck on the place of unable to pass the DNID variable to the Asterisk-client by IAX-trunk. The reason of we want to create an Asterisk-root between our PortaSIP and the Asterisk-client is, we want to be benefit from the IAX trunk of packet saving and etc. But we just can not pass the DNID(B-party number to the client Asterisk) Hope that you can have some idea to help us. We did not get the DID from didx. Best regards, Sam -----Original Message----- From: Rehan AllahWala [mailto:rehan@supertec.com] Sent: Wednesday, July 19, 2006 5:53 PM To: samliang@isphone.com.au Subject: Re: [asterisk-dev] How to send DNIS(B-party number) in IAX trunk Hello, Have u tried did's from didx if they pass dnis to u ? Rehan From: "Sam Liang" <samliang@isphone.com.au> To: <asterisk-dev@lists.digium.com> Date sent: Wed, 19 Jul 2006 14:53:04 +1000 Subject: [asterisk-dev] How to send DNIS(B-party number) in IAX trunk Send reply to: Asterisk Developers Mailing List <asterisk-dev@lists.digium.com> <mailto:asterisk-dev-request@lists.digium.com?subject=unsubscribe> <mailto:asterisk-dev-request@lists.digium.com?subject=subscribe>> Hi, > > I am a voip engineer in a Sydney company, > > We got a problem when we want to set up multiple IAX trunks. > > We set up the trunk from PortSIP to IAX2 trunk fine. But when the customer > set up a Asterisk trunk to our Asterisk server, which hopefully relay > multiple call from PortaSIP into our Asterisk and then to the customer > Asterisk server by the specific trunk. We get a problem. Our PortaSIPsend> out the DID into Asterisk, Asterisk grasp the DID with AGI function, but > when the call go further into customer premise Asterisk DID, Our Asterisk > just bridge the call to the customer's IAX2 trunk, but failed to pass the > DID number further, > > That means our customer can only create a single number trunk with our > Asterisk, instead of what we want to achieve for the read PABX, multipleDID> route inside a single IAX2 trunk. > > I will like to enclose the Asterisk log here as well, the ITSP_Asterisklog> contain the log information when a call make to the premium with DID_NUM > 61282138622, and the customer_side_Asterisk.log contain the concurrent log > of the customer premium Asterisk log. > > Our Asterisk use Asterisk realtime engine 1.2.1 > > Customer use Asterisk@Home 2.8 which is 1.2.7 > > Best regards, > > Sam Liang > > Support Network Engineer > > ISPhone Australasia Pty Ltd > > Tel: +61 (0)2 8213 8686 > > Fax: +61 (0)2 8213 8685 > > Mob: 0413509414 > > email: samliang@isphone.com.au > > web: www.isphone.com.au > > > >Super Technologies Inc., Pensacola, Florida http://www.SuperTec.com - Technologies from tomorrow, Today! MSN: Rehan@Rehan.com Skype: Rehan33