PDA

Voir la version complète : PEER SIP de backup



chezto
20/06/2012, 18h10
Bonjour,

A tous, je suis nouveau sur ce forum et je viens avec ma première question.

j'ai un certain nombre d'extension de router vers un Trunk SIP (peer).
Seulement quand celui ci ne répond pas je souhaiterais re-router les appels vers un autre Trunk SIP (peer).

Aujourd'hui dans mon extensions.conf j'ai:

[outgoing]
;Route par défaut
exten => _X.,1,dial(SIP/TRUNK/${EXTEN})

Je souhaiterais pouvoir assurer la livraison de cette extensions vers un peer TRUNK2 si le peer TRNUK ne répond pas ?

Merci de votre aide.

Chezto.

Reaper
20/06/2012, 21h59
Vous pouvez utiliser la variable ${DIALSTATUS}

http://www.voip-info.org/wiki/view/Asterisk+variable+DIALSTATUS

therebel23
21/06/2012, 08h40
Bonjour,
il suffit de taper :


[outgoing]
;Route par défaut
exten => _X.,1,dial(SIP/TRUNK/${EXTEN})
;Route de backup
exten => _X.,1,dial(SIP/TRUNK2/${EXTEN})

stevan
21/06/2012, 09h32
Bonjour,
il suffit de taper :


[outgoing]
;Route par défaut
exten => _X.,1,dial(SIP/TRUNK/${EXTEN})
;Route de backup
exten => _X.,1,dial(SIP/TRUNK2/${EXTEN})

Bonjour,

;Route par défaut
exten => _X.,1,dial(SIP/TRUNK/${EXTEN})
;Route de backup
exten => _X.,n,dial(SIP/TRUNK2/${EXTEN})


ça marchera un peu mieux ;) sinon normalement ça devrait être bon oui.

Reaper
21/06/2012, 11h15
C'est pas très propre, parce que vous n'avez pas de gestion de cas.

chezto
21/06/2012, 11h57
Merci pour toutes ces pistes que je vais test de ce pas.

Je reviens vers vous pour le résultat.

Chezto,

therebel23
21/06/2012, 12h00
Oui, on pourrait faire comme ça ? (je n'ai pas testé)

exten => _X.,1,dial(SIP/TRUNK/${EXTEN})
exten => _X.,n,Goto(${DIALSTATUS},1)

exten => CHANUNAVAIL,1,dial(SIP/TRUNK2/${EXTEN})

Reaper
21/06/2012, 12h11
Non, il faut lire le wiki cité plus haut.

gb56
22/06/2012, 08h42
Non, il faut lire le wiki cité plus haut.

Y'en a un peu marre des réponses TAKALIRELADOC qui ne servent à rien et dénaturent l'esprit du forum.

Gilbert BRETON

YBDOMO
22/06/2012, 09h33
Oui, on pourrait faire comme ça ? (je n'ai pas testé)

exten => _X.,1,dial(SIP/TRUNK/${EXTEN})
exten => _X.,n,Goto(${DIALSTATUS},1)

exten => CHANUNAVAIL,1,dial(SIP/TRUNK2/${EXTEN})

Bonjour,

Il faut faire un effort de recherche pour comprendre et aboutir a ce qu'on veut faire



Reaper

Non, il faut lire le wiki cité plus haut.


Reaper a raison


je livre un extrait de config!!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;
;Extrait gestion etat dial
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Extrait de extensions.conf
OUTPUT_CHANNEL = 1 si provider est SIP (trunk) sinon ISDN ou autre

ACCESS_PROVIDER = contexte definition trunk1 sip (sip.conf)
ACCESS_PROVIDER_1 = contexte definition trunk2 sip (sip.conf)
Status_Dial_Isdn macro de gestion du DIALSTATUS
OUTGOING_CHANNEL = definition DAHDI/gx

[macro-OUTGOING_CALL]
exten => s,1,GotoIf($["${OUTPUT_CHANNEL}" = "1"]?:Following_channel_output)
;
;------------ Provider SIP
;
#include "extensions_Provider.conf"
;
;------------ end Provider SIP
;
;----------- Provider ISDN
exten=>s,n(Following_channel_output),Dial(${OUTGOING_CHAN NEL}/${FILTER(0-9,${ARG1})},${dial_tout},rtT)
exten => s,n,NoOp(Dial Status: ${DIALSTATUS})
exten => s,n,Macro(Status_Dial_Isdn,${DIALSTATUS})
exten => s,n,hangup
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;
;extensions_Provider.conf
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;
exten => s,n,Set(ARG_CALL=${ARG1})
exten=>s,n(first_dial),Dial(SIP/${FILTER(0-9,${ARG_CALL})}@${ACCESS_PROVIDER},${dial_tout},rT )
exten => s,n,NoOp(Dial Status: ${DIALSTATUS})
exten => s,n,GotoIf($["${DIALSTATUS}"="BUSY"]?Folow_trunk)
exten => s,n,GotoIf($["${DIALSTATUS}"="CHANUNAVAIL"]?Folow_trunk)
exten => s,n,GotoIf($["${DIALSTATUS}"="CONGESTION"]?Folow_trunk)
;
; gestion etat dial ${DIALSTATUS}
;
exten => s,n,Macro(Status_Dial_Isdn,${DIALSTATUS})
exten => s,n,Busy(10)
exten => s,n,hangup

exten => s,n(Folow_trunk),Dial(SIP/${FILTER(0-9,${ARG_CALL})}@${ACCESS_PROVIDER_1},${dial_tout}, rT)
exten => s,n,NoOp(Dial Status: ${DIALSTATUS})
exten => s,n,Macro(Status_Dial_Isdn,${DIALSTATUS})
exten => s,n,Busy(10)
exten => s,n,hangup

On peut gerer ainsi plusieurs trunk sip > 2 ou boucler avec un time sur first_dial jusqu'a ce qu'un trunk soit disponible.

A+

Reaper
22/06/2012, 15h17
Y'en a un peu marre des réponses TAKALIRELADOC qui ne servent à rien et dénaturent l'esprit du forum.

Gilbert BRETON

J'ai fourni un lien vers le wiki avec un exemple concret de script de gestion de cas. Si vous n’êtes pas capable de le trouver sur la page il faut laisser tomber asterisk.