[VoIP] Can this be done?
Paul Wills
pdwills at cedarknolltelephone.com
Tue Jan 30 16:36:51 CST 2007
I guess I broke it. It helps to switch to the FXO port on the Cisco Router.
I was still dialing out on the Digium card. This probably gets deeper than
anyone wants to see but things are quiet tonight:
The call comes in on SIP/33. The E&M flash out port SIP/55 happens here
while the context is looping waiting for a valid ANI number. Somewhere up
here, I manually clicked the switch on the Berry test set simulating the ANI
unit:
-- Goto (ciscofxs,5943516,5)
-- Executing NoOp("SIP/33-0a06fbf0", "") in new stack
-- Executing GotoIf("SIP/33-0a06fbf0", "1?5:7") in new stack
-- Goto (ciscofxs,5943516,5)
-- Executing NoOp("SIP/33-0a06fbf0", "") in new stack
-- Executing GotoIf("SIP/33-0a06fbf0", "1?5:7") in new stack
Here comes the ANI number:
-- Executing Answer("SIP/55-0a07a368", "") in new stack
-- Executing Wait("SIP/55-0a07a368", "") in new stack
-- Executing Set("SIP/55-0a07a368", "ANIDATA=5945555|g") in new stack
== Setting global variable 'ANIDATA' to '5945555'
-- Executing NoOp("SIP/55-0a07a368", "5945555") in new stack
-- Executing Hangup("SIP/55-0a07a368", "") in new stack
OK we got that, hang up SIP/55 (The E&M Port)
== Spawn extension (anireceive, 5945555, 5) exited non-zero on
'SIP/55-0a07a368'
-- Goto (ciscofxs,5943516,5)
-- Executing NoOp("SIP/33-0a06fbf0", "") in new stack
-- Executing GotoIf("SIP/33-0a06fbf0", "0?5:7") in new stack
-- Goto (ciscofxs,5943516,7)
-- Executing NoOp("SIP/33-0a06fbf0", "") in new stack
-- Executing Set("SIP/33-0a06fbf0", "CALLERID(num)=5945555") in new
stack
We now have a valid ANI number.
-- Executing NoOp("SIP/33-0a06fbf0", "5945555") in new stack
-- Executing Set("SIP/33-0a06fbf0", "ANIDATA=0000000|g") in new stack
== Setting global variable 'ANIDATA' to '0000000'
-- Executing NoOp("SIP/33-0a06fbf0", "0000000") in new stack
-- Executing Goto("SIP/33-0a06fbf0", "inbound|5943516|1") in new stack
-- Goto (inbound,5943516,1)
-- Executing Goto("SIP/33-0a06fbf0", "internal|516|1") in new stack
-- Goto (internal,516,1)
-- Executing Macro("SIP/33-0a06fbf0", "dialswitch|516") in new stack
-- Executing Dial("SIP/33-0a06fbf0", "SIP/516 at cisco_fxo|60") in new
stack
-- Called 516 at cisco_fxo
-- SIP/cisco_fxo-0a0821c8 is circuit-busy
== Everyone is busy/congested at this time (1:0/1/0)
-- Executing Macro("SIP/33-0a06fbf0", "fastbusy") in new stack
This is where I can't figure out why cisco_fxo would be busy. If I put a
delay of 5 seconds before I continue with the call, that seems to clear it.
SIP/33 is the incoming FXS port, SIP/55 is the E&M port, cisco_fxo is the
FXO port.
As I said it's convoluted.
PDW
----- Original Message -----
From: "Paul Wills" <pdwills at cedarknolltelephone.com>
To: "Voice Over IP Tandem for Analog Switches" <voip at ckts.info>
Sent: Tuesday, January 30, 2007 5:18 PM
Subject: Re: [VoIP] Can this be done?
>I thought of using a call file but, as you say, it ain't pretty.
>
> While copying down the below code, I made a few calls so I could recreate
> the error message as part of this email. To my surprise, I can't get it
> to
> fail. I may have fixed the problem in Cisco router or, perhaps, it was
> that
> dead chicken I waved around last night.
>
> Just to show the concept, there are two components to extensions.conf.
>
> When the ANI unit is triggered, the ANI data comes in here:
>
> [anireceive]
>
> exten => _594XXXX,1,answer
> exten => _594XXXX,2,wait
> exten => _594XXXX,3,Set(ANIDATA=${EXTEN}|g) ;Read ANI data here
> exten => _594XXXX,4,NoOp(${ANIDATA})
> exten => _594XXXX,5,hangup
>
>
> A call coming in from the Cisco FXS port goes here:
>
> [ciscofxs]
>
> exten => _X.,1,NoOp(GET ANI HERE)
> ;exten => _X.,2,NoOp ; Do nothing, or;
> exten => _X.,2,Dial(SIP/1 at 55,1) ; Make a "dummy" call to the E&M port
> to
> toggle the E lead, or;
> ;exten => _X.,2,agi ; Call a script to
> toggle
> the DTR lead on the serial port.
>
> The pulsed E lead will then latch up a relay that will start the ANI unit.
>
> exten => _X.,3,NoOp
> exten => _X.,4,NoOp(${ANIDATA})^M
> exten => _X.,5,NoOp^M
> exten => _X.,6,set(ANIDATA=5943514) ;Leave next line out until ANI is
> implemented
> ;exten => _X.,6,GoToIf($["${ANIDATA}"="0000000"]?5:7)^M ;Loop until the
> ANI data has been received.
> exten => _X.,7,NoOp
> exten => _X.,8,set(CALLERID(num)=${ANIDATA})^M
> exten => _X.,9,NoOp(${ANIDATA})^M
> exten => _X.,10,set(ANIDATA=0000000|g)^M
> exten => _X.,11,NoOp(${ANIDATA})^M
> exten => _X.,12,goto(inbound,${EXTEN},1)^M
>
> Then go to the regular inbound context with a real Caller ID number.
>
> The above code all works so far. All I have to do is complete the
> hardware
> connection between [ciscofxs] and [anireceive] and I should be done. I
> guess it's time to mount the router in the switchroom.
>
> Now to try to "break" it.
>
> PDW
>
More information about the VoIP
mailing list