[asterisk-users] Handling SIP error codes/ISDN codes

das sandesh sandesh440 at gmail.com
Fri Jan 22 17:43:40 CST 2010


Hi,

I was trying to use 2 of asterisk servers and interconnected, one of them as
a peer to other sever (configured in sip.conf), so all the calls to server 1
will just be passed to server 2 (has PRI Card, TE 412P, only one PRI
connected), i was sending calls to server 1 and that would send to server 2
and then dial out using Dahdi, but the problem that i got was the hangup
cause codes, i was not able to pass the appropriate ones to the server 0
(Test server) that sent a call to server 1. For example, when the user at
server 0 (test server) made a call to server 1, that sends it to server 2
and connects to the appropriate destination, but in the mean while if we
just cancel the call, we need to see the SIP error code as 487 - Request
terminated, but I was only able to see the ISDN core in PRI debug on server
2, but was not able to see '487' in sip debug, even though if i am handling
the error code conditions........Is there any way of handling the error
codes properly....?

Asterisk version: 1.4.22.1
Libpri: 1.4.10.1
dahdi: 2.2.0.2 are the versions that I am using.


The way I was handling the codes for the server 2:


[macro-result]
exten => s,1,Wait(1)
exten => s,2,ResetCDR(w)
exten => s,3,NoCDR()
exten => s,4,GotoIf($[${ISNULL(${ARG1})}]?7:5)
exten => s,5,Set(RC=${ARG1})
exten => s,6,Goto(s|9)
exten => s,7,GotoIf($[${ISNULL(${DIALSTATUS})}]?8:rc-${DIALSTATUS}|1)
exten => s,8,Set(RC=${IF($[${ISNULL(${HANGUPCAUSE})}]?0:${HANGUPCAUSE})})
exten => s,9,Goto(rc-${RC}|1)
exten => s,10,Hangup(${RC})
exten => i,1,Set(RC=0)
exten => i,2,Goto(s|9)

exten => rc-ANSWER,1,Set(RC=16)
exten => rc-ANSWER,2,Goto(s|9)

exten => rc-BUSY,1,Set(RC=17)
exten => rc-BUSY,2,Goto(s|9)

exten => rc-CANCEL,1,Set(RC=16)
exten => rc-CANCEL,2,Goto(s|9)

exten => rc-CHANUNAVAIL,1,Set(RC=44)
exten => rc-CHANUNAVAIL,2,Goto(s|9)

exten => rc-CONGESTION ,1,Set(RC=19)
exten => rc-CONGESTION ,2,Goto(s|9)

;exten => rc-NOANSWER,1,Set(RC=19)
;exten => rc-NOANSWER,2,Goto(s|9)

exten => rc-0,1,NoOp(NOTDEFINED)
exten => rc-0,n,Goto(s|10)

exten => rc-1,1,NoOp(UNALLOCATED)
exten => rc-1,n,Goto(s|10)

exten => rc-2,1,NoOp(NO_ROUTE_TRANSIT_NET)
exten => rc-2,n,Goto(s|10)

exten => rc-3,1,NoOp(NO_ROUTE_DESTINATION)
exten => rc-3,n,Goto(s|10)

exten => rc-6,1,NoOp(CHANNEL_UNACCEPTABLE)
exten => rc-6,n,Goto(s|10)

exten => rc-7,1,NoOp(CALL_AWARDED_DELIVERED)
exten => rc-7,n,Goto(s|10)

exten => rc-16,1,NoOp(NORMAL_CLEARING)
exten => rc-16,n,Goto(s|10)

exten => rc-17,1,NoOp(USER_BUSY)
;exten => rc-17,n,Busy()
exten => rc-17,n,Goto(s|10)

exten => rc-18,1,NoOp(NO_USER_RESPONSE)
exten => rc-18,n,Goto(s|10)

exten => rc-19,1,NoOp(NO_ANSWER)
exten => rc-19,n,Goto(s|10)

exten => rc-21,1,NoOp(CALL_REJECTED)
exten => rc-21,n,Goto(s|10)


exten => rc-28,1,NoOp(INVALID_NUMBER_FORMAT)
exten => rc-28,n,Goto(s|10)

exten => rc-29,1,NoOp(FACILITY_REJECTED)
exten => rc-29,n,Goto(s|10)

exten => rc-30,1,NoOp(RESPONSE_TO_STATUS_ENQUIRY)
exten => rc-30,n,Goto(s|10)

exten => rc-31,1,NoOp(NORMAL_UNSPECIFIED)
exten => rc-31,n,Goto(s|10)

exten => rc-34,1,NoOp(NORMAL_CIRCUIT_CONGESTION)
exten => rc-34,n,Congestion()
exten => rc-34,n,Goto(s|10)

Thank you for your help.

Regards
Sandesh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20100122/ee87ae54/attachment.htm 


More information about the asterisk-users mailing list