[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