Mon sip.conf (J'ai supprimé la config de mes postes pour ne garder que le trunk orange):
[general]
context = default
language = fr
allowoverlap = no
bindport = 5060
bindaddr = 0.0.0.0
srvlookup = no
qualify=yes
defaultexpiry=1800
maxexpiry=1800
keepalive=120
disallow = all
allow = gsm,ulaw,alaw,adpcm,speex,g729,g723
;
; the following is required when using siproxd with local DNAT rule
nat=never
externip=192.168.67.12
;
localnet = 192.168.67.0/24 ; my inbound network with local UAs
domain = asterix.voip.zoc.me
canreinvite = no
useragent=PBX
sdpsession=Talk
sdpowner=+334XXXXXXXX
register => +334XXXXXXXX@trunk_orange/+334XXXXXXXX
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Local SIP UAs
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[trunk_orange]
type=peer
context=incoming
defaultuser=+334XXXXXXXX
fromuser=+334XXXXXXXX
remotesecret=wtf
host=orange-multimedia.fr
insecure=port,invite
fromdomain = orange-multimedia.fr
outboundproxy=localhost:5160,force
canreinvite=no
sendrpid=no
dtmfmode=auto
call-limit=1
A noter que mon siproxd écoute sur le port 5160 (pour que le port SIP d'asterisk reste 5060 et simplifier la configuration des téléphones sur le réseau). Pour un abonnement supportant plusieurs appels sortants simultanés, il faudra ajuster le paramètre "call-limit".
Mon dialplan :
[globals]
HOMEPHONE=SIP/201
[macro-voicemail]
exten => s,1,Dial(${ARG1},20)
exten => s,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?busy:unavail)
exten => s,n(unavail),VoiceMail(${MACRO_EXTEN}@default,su)
exten => s,n,Hangup()
exten => s,n(busy),VoiceMail(${MACRO_EXTEN}@default,sb)
exten => s,n,Hangup()
[incoming]
exten => +334XXXXXXXX,1,Log(NOTICE, Incoming call from ${CALLERID(all)})
exten => +334XXXXXXXX,n,Set(CALLERID(name)=${IF(${DB_EXISTS(cidname/${CALLERID(num)})}?${DB(cidname/${CALLERID(num)})}:${CALLERID(name)})})
exten => +334XXXXXXXX,n,Log(NOTICE, Resolved - Incoming call from ${CALLERID(all)})
exten => +334XXXXXXXX,n,GotoIf(${DB_EXISTS(blacklist/${CALLERID(num)})}?error-blacklist,s,1)
exten => +334XXXXXXXX,n,GotoIf($["foo${CALLERID(num)}" = "foo"]?error-nocid,s,1)
exten => +334XXXXXXXX,n,GotoIf($["foo${CALLERID(num)}" = "fooanonymous"]?error-nocid,s,1)
exten => +334XXXXXXXX,n,GotoIf($["foo${CALLERID(num)}" = "fooptsn"]?error-nocid,s,1)
exten => +334XXXXXXXX,n,Macro(voicemail,${HOMEPHONE})
[local]
exten => *98,1,VoiceMailMain(${CALLERID(num)@default},s)
exten => 201,1,Macro(voicemail,${HOMEPHONE})
exten => _X.,1,Log(NOTICE, Outgoing call to ${EXTEN})
exten => _X.,n,Set(CALLERID(all)="+334XXXXXXXX" <+334XXXXXXXX>)
exten => _X.,n,Set(NUMBER=${EXTEN})
exten => _X.,n,Dial(SIP/${NUMBER}@trunk_orange)
exten => _X.,n,Log(NOTICE, Outgoing failed with error ${DIALSTATUS})
exten => _X.,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Hangup()
exten => s-CONGESTION,1,Congestion()
exten => s-CANCEL,1,Hangup()
exten => s-BUSY,1,Busy()
exten => s-CHANUNAVAIL,1,Log(NOTICE, Outgoing trunk unavailable - restarting)
exten => s-CHANUNAVAIL,n,Wait(1)
exten => s-CHANUNAVAIL,n,System(/usr/sbin/asterisk -rx reload)
exten => s-CHANUNAVAIL,n,Wait(1)
exten => s-CHANUNAVAIL,n,Log(NOTICE, Second attempt at calling ${NUMBER})
exten => s-CHANUNAVAIL,n,Set(CALLERID(all)="+334XXXXXXXX" <+334XXXXXXXX>)
exten => s-CHANUNAVAIL,n,Dial(SIP/${NUMBER}@trunk_orange)
exten => s-CHANUNAVAIL,n,Hangup()
exten => 700,1,Playback(posix-restarting) ; "Restarting asterisk"
exten => 700,n,Wait(1)
exten => 700,n,System(/usr/sbin/asterisk -rx reload)
exten => 700,n,Hangup
[error-blacklist]
exten => s,1,Answer()
exten => s,n,Wait(1)
exten => s,n,Zapateller()
exten => s,n,Zapateller()
exten => s,n,Playback(ss-noservice)
exten => s,n,Hangup
[error-nocid]
exten => s,1,Answer()
exten => s,n,Wait(1)
exten => s,n,Zapateller()
exten => s,n,Zapateller()
exten => s,n,PlayBack(privacy-unident)
exten => s,n,Hangup()
J'utilise un C430IP ainsi qu'un soft SIP sur mon Mac sans problèmes.