I have managed to configure my Patton SmartNode 4554 BRi Gateway to work with my Trixbox server. It can make outbound and inbound calls and Direct Dial numbers are being routed to their correct extensions.
There is however still one more problem I am having and this is Outbound Caller ID. I want the Caller ID to represent the extensions direct dial number when a call is made at the moment the Caller ID is just defaulting to the ISDN2 line number.
The configuration I am using is below:
#----------------------------------------------------------------#
# #
# SN4554/2BIS/EUI #
# R4.2 2007-09-19 SIP #
# 1970-01-01T02:44:01 #
# SN/00A0BA03F6EB #
# #
# #
#----------------------------------------------------------------#
cli version 3.20
gui type basic
dns-relay
webserver port 80 language en
sntp-client
sntp-client server primary 192.168.111.2 port 123 version 4
system
ic voice 0
system
clock-source 1 bri 0 0
clock-source 2 bri 0 1
profile ppp default
profile tone-set default
profile voip default
codec 1 g711alaw64k rx-length 20 tx-length 20
codec 2 g711ulaw64k rx-length 20 tx-length 20
profile pstn default
profile sip default
profile aaa default
method 1 local
method 2 none
context ip router
interface IF_IP_WAN
ipaddress 192.168.111.10 255.255.255.0
context cs switch
interface isdn IF_S0_00
route call dest-interface IF_SIP_SERVICE
interface isdn IF_S0_01
route call dest-interface IF_SIP_SERVICE
interface sip IF_SIP_SERVICE
bind gateway GW_SIP
service default
route call dest-service SER_HG_PSTN_FALLBACK
service hunt-group SER_HG_PSTN_FALLBACK
drop-cause normal-unspecified
drop-cause no-circuit-channel-available
drop-cause network-out-of-order
drop-cause temporary-failure
drop-cause switching-equipment-congestion
drop-cause access-info-discarded
drop-cause circuit-channel-not-available
drop-cause resources-unavailable
route call 1 dest-interface IF_S0_00
route call 2 dest-interface IF_S0_01
context cs switch
no shutdown
gateway sip GW_SIP
bind interface IF_IP_WAN router
service default
defaultserver manual 192.168.111.12 5060 loose-router
registration manual 192.168.111.12 5060
user 15000 register display-name 15000 phone-context lxuser
gateway sip GW_SIP
no shutdown
port ethernet 0 0
bind interface IF_IP_WAN router
no shutdown
port bri 0 0
clock auto
encapsulation q921
q921
permanent-layer2
protocol pp
uni-side auto
encapsulation q931
q931
protocol dss1
uni-side user
encapsulation cc-isdn
bind interface IF_S0_00 switch
port bri 0 0
no shutdown
port bri 0 1
clock auto
encapsulation q921
q921
permanent-layer2
protocol pp
uni-side auto
encapsulation q931
q931
protocol dss1
uni-side user
encapsulation cc-isdn
bind interface IF_S0_01 switch
port bri 0 1
no shutdown
######################
The configuration for the trunk on the server is below:
username=15000
type=peer
secret=15000
insecure=very
host=192.168.111.10
fromuser=15000
fromdomain=192.168.111.10
context=from-trunk-custom
I have the direct dial numbers configured with out the area code for example just "789708". With the outbound Caller ID I have used the full number with area code "01806789708". I can see the Caller ID being displayed in the From field in the SIP Packet headers as well as being in the "SIP Display info" field under the "From" field from the Trixbox server but it would seem that this is not being passed through to the recipient of the call so they are just seeing the ISDN line number. This seems to be down to the Patton not interperating the Caller ID either because its reading the Caller ID from the wrong part of the SIP header or it isnt reading it at all therefore not overriding the lines default number.
Here is some activity from the servers CLi when a outbound call is made:
-- Executing [907986######@from-internal:1] Macro("SIP/208-09e6d088", "user-callerid|SKIPTTL|") in new stack
-- Executing [s@macro-user-callerid:1] NoOp("SIP/208-09e6d088", "user-callerid: device 208") in new stack
-- Executing [s@macro-user-callerid:2] Set("SIP/208-09e6d088", "AMPUSER=208") in new stack
-- Executing [s@macro-user-callerid:3] GotoIf("SIP/208-09e6d088", "0?report") in new stack
-- Executing [s@macro-user-callerid:4] ExecIf("SIP/208-09e6d088", "1|Set|REALCALLERIDNUM=208") in new stack
-- Executing [s@macro-user-callerid:5] NoOp("SIP/208-09e6d088", "REALCALLERIDNUM is 208") in new stack
-- Executing [s@macro-user-callerid:6] Set("SIP/208-09e6d088", "AMPUSER=208") in new stack
-- Executing [s@macro-user-callerid:7] Set("SIP/208-09e6d088", "AMPUSERCIDNAME=James") in new stack
-- Executing [s@macro-user-callerid:8] GotoIf("SIP/208-09e6d088", "0?report") in new stack
-- Executing [s@macro-user-callerid:9] Set("SIP/208-09e6d088", "AMPUSERCID=208") in new stack
-- Executing [s@macro-user-callerid:10] Set("SIP/208-09e6d088", "CALLERID(all)="James" ") in new stack
-- Executing [s@macro-user-callerid:11] Set("SIP/208-09e6d088", "REALCALLERIDNUM=208") in new stack
-- Executing [s@macro-user-callerid:12] ExecIf("SIP/208-09e6d088", "0|Set|CHANNEL(language)=") in new stack
-- Executing [s@macro-user-callerid:13] NoOp("SIP/208-09e6d088", "TTL: ARG1: SKIPTTL") in new stack
-- Executing [s@macro-user-callerid:14] GotoIf("SIP/208-09e6d088", "1?continue") in new stack
-- Goto (macro-user-callerid,s,23)
-- Executing [s@macro-user-callerid:23] NoOp("SIP/208-09e6d088", "Using CallerID "James" ") in new stack
-- Executing [907986######@from-internal:2] Set("SIP/208-09e6d088", "_NODEST=") in new stack
-- Executing [907986######@from-internal:3] Macro("SIP/208-09e6d088", "record-enable|208|OUT|") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("SIP/208-09e6d088", "0?2:4") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] AGI("SIP/208-09e6d088", "recordingcheck|20081103-155024|1225727424.574") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
recordingcheck|20081103-155024|1225727424.574: Outbound recording not enabled
-- AGI Script recordingcheck completed, returning 0
-- Executing [s@macro-record-enable:5] NoOp("SIP/208-09e6d088", "No recording needed") in new stack
-- Executing [907986######@from-internal:4] Macro("SIP/208-09e6d088", "dialout-trunk|1|07986######||") in new stack
-- Executing [s@macro-dialout-trunk:1] Set("SIP/208-09e6d088", "DIAL_TRUNK=1") in new stack
-- Executing [s@macro-dialout-trunk:2] ExecIf("SIP/208-09e6d088", "0|Authenticate|") in new stack
-- Executing [s@macro-dialout-trunk:3] GotoIf("SIP/208-09e6d088", "0?disabletrunk|1") in new stack
-- Executing [s@macro-dialout-trunk:4] Set("SIP/208-09e6d088", "DIAL_NUMBER=07986######") in new stack
-- Executing [s@macro-dialout-trunk:5] Set("SIP/208-09e6d088", "DIAL_TRUNK_OPTIONS=tr") in new stack
-- Executing [s@macro-dialout-trunk:6] Set("SIP/208-09e6d088", "GROUP()=OUT_1") in new stack
-- Executing [s@macro-dialout-trunk:7] GotoIf("SIP/208-09e6d088", "0?nomax") in new stack
-- Executing [s@macro-dialout-trunk:8] GotoIf("SIP/208-09e6d088", "0?chanfull") in new stack
-- Executing [s@macro-dialout-trunk:9] GotoIf("SIP/208-09e6d088", "0?skipoutcid") in new stack
-- Executing [s@macro-dialout-trunk:10] Set("SIP/208-09e6d088", "DIAL_TRUNK_OPTIONS=") in new stack
-- Executing [s@macro-dialout-trunk:11] Macro("SIP/208-09e6d088", "outbound-callerid|1") in new stack
-- Executing [s@macro-outbound-callerid:1] ExecIf("SIP/208-09e6d088", "0|SetCallerPres|") in new stack
-- Executing [s@macro-outbound-callerid:2] GotoIf("SIP/208-09e6d088", "1?start") in new stack
-- Goto (macro-outbound-callerid,s,4)
-- Executing [s@macro-outbound-callerid:4] NoOp("SIP/208-09e6d088", "REALCALLERIDNUM is 208") in new stack
-- Executing [s@macro-outbound-callerid:5] GotoIf("SIP/208-09e6d088", "1?normcid") in new stack
-- Goto (macro-outbound-callerid,s,10)
-- Executing [s@macro-outbound-callerid:10] Set("SIP/208-09e6d088", "USEROUTCID=01806789708") in new stack
-- Executing [s@macro-outbound-callerid:11] Set("SIP/208-09e6d088", "EMERGENCYCID=") in new stack
-- Executing [s@macro-outbound-callerid:12] Set("SIP/208-09e6d088", "TRUNKOUTCID=01806789101") in new stack
-- Executing [s@macro-outbound-callerid:13] GotoIf("SIP/208-09e6d088", "1?trunkcid") in new stack
-- Goto (macro-outbound-callerid,s,17)
-- Executing [s@macro-outbound-callerid:17] GotoIf("SIP/208-09e6d088", "0?usercid") in new stack
-- Executing [s@macro-outbound-callerid:18] Set("SIP/208-09e6d088", "CALLERID(all)=01806789101") in new stack
-- Executing [s@macro-outbound-callerid:19] GotoIf("SIP/208-09e6d088", "0?report") in new stack
-- Executing [s@macro-outbound-callerid:20] Set("SIP/208-09e6d088", "CALLERID(all)=01806789708") in new stack
-- Executing [s@macro-outbound-callerid:21] GotoIf("SIP/208-09e6d088", "1?report:hidecid") in new stack
-- Goto (macro-outbound-callerid,s,23)
-- Executing [s@macro-outbound-callerid:23] NoOp("SIP/208-09e6d088", "CallerID set to "" ") in new stack
-- Executing [s@macro-dialout-trunk:12] AGI("SIP/208-09e6d088", "fixlocalprefix") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/fixlocalprefix
-- AGI Script fixlocalprefix completed, returning 0
-- Executing [s@macro-dialout-trunk:13] Set("SIP/208-09e6d088", "OUTNUM=07986######") in new stack
-- Executing [s@macro-dialout-trunk:14] Set("SIP/208-09e6d088", "custom=SIP/ISDN0") in new stack
-- Executing [s@macro-dialout-trunk:15] GotoIf("SIP/208-09e6d088", "1?gocall") in new stack
-- Goto (macro-dialout-trunk,s,17)
-- Executing [s@macro-dialout-trunk:17] Macro("SIP/208-09e6d088", "dialout-trunk-predial-hook|") in new stack
-- Executing [s@macro-dialout-trunk:18] GotoIf("SIP/208-09e6d088", "0?bypass|1") in new stack
-- Executing [s@macro-dialout-trunk:19] GotoIf("SIP/208-09e6d088", "0?customtrunk") in new stack
-- Executing [s@macro-dialout-trunk:20] Dial("SIP/208-09e6d088", "SIP/ISDN0/07986######|300|") in new stack
-- Called ISDN0/07986######
-- SIP/ISDN0-0a047ed8 is ringing
-- SIP/ISDN0-0a047ed8 answered SIP/208-09e6d088
-- Packet2Packet bridging SIP/208-09e6d088 and SIP/ISDN0-0a047ed8
== Spawn extension (macro-dialout-trunk, s, 20) exited non-zero on 'SIP/208-09e6d088' in macro 'dialout-trunk'
== Spawn extension (macro-dialout-trunk, s, 20) exited non-zero on 'SIP/208-09e6d088'
-- Executing [h@macro-dialout-trunk:1] Macro("SIP/208-09e6d088", "hangupcall|") in new stack
-- Executing [s@macro-hangupcall:1] ResetCDR("SIP/208-09e6d088", "w") in new stack
-- Executing [s@macro-hangupcall:2] NoCDR("SIP/208-09e6d088", "") in new stack
-- Executing [s@macro-hangupcall:3] GotoIf("SIP/208-09e6d088", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,6)
-- Executing [s@macro-hangupcall:6] GotoIf("SIP/208-09e6d088", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] GotoIf("SIP/208-09e6d088", "1?theend") in new stack
-- Goto (macro-hangupcall,s,11)
-- Executing [s@macro-hangupcall:11] Hangup("SIP/208-09e6d088", "") in new stack
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'SIP/208-09e6d088' in macro 'hangupcall'
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'SIP/208-09e6d088'
(Note: All numbers have been altered or censored for privacy purposes).
If anyone has had a similar issues or can offer me any help I would really appreciate it.
Thanks
James
Member Since:
2008-07-07