PDA

Voir la version complète : FollowMe



Seb312
26/01/2018, 20h20
Bonjour,

Mon scénario, lors d'un appel entrant, je souhaite pouvoir appeler un 1er téléphone portable (secrétaire) puis dans le cas où il ne répond pas (téléphone éteint, hors zone, elle refuse l'appel), lancer l'appel sur le 2nd téléphone portable (patron) et pour finir si aucun des téléphones ne réponds tomber sur la messagerie vocale.
J'ai voulu utiliser la méthode FollowMe car elle me semble répondre à mon besoin car si l'appelant ne valide pas via la touche "1", il passe en timeout et lance le Dial sur le second téléphone.

Cela marche très bien à l'exception du cas où le 1er portable est : éteint, hors zone, refuse l'appel via le bouton raccrocher et non pas la touche "2". Dans les logs, je vois bien un timeout sur le Dial du 1er portable, par contre j'observe qu'il tente un Dial sur le 2nd portable sans raccrocher le 1er. J'ai un message dans les logs comme quoi ma ligne est busy car je ne peux faire qu'un seul appel externe via mon fournisseur.
Au final, après plusieurs tests, j'observe que quand le 1er téléphone est éteint ou on refuse l'appel, au moment du timeout, le 1er Dial n'est pas stoppé.

Y-a-t'il une solution pour éviter ce problème et donc lancer le 2nd Dial qu'au moment où le 1er Dial est bien raccroché?

Merci d'avance pour votre aide.
Je ne sais pas si j'ai été très clair :pt1cable:

Fichier followme.conf :


[default]
musicclass=>default
; The moh class that should be used for the caller while they are waiting to be connected.
context=>work
; The context to dial the numbers from
number=>4000,15,1
number=>4001,15,2


Fichier extensions.conf :


[work]
exten => 4000,n,Dial(SIP/ippi_outgoing/+336XXXXXXXX,15,m(default),Ttr)

exten => 4001,1,Dial(SIP/ippi_outgoing/+336XXXXXXXX,15,m(default),Ttr)

;extensions des IVR
exten => 3000,1,Goto(ivr,s,1)

[ivr]
exten => s,1,Answer()
exten => s,n,Followme(default,dN)
exten => s,n,VoiceMail(100)
exten => s,n,Hangup()

;Les appels entrants sont dirigés ver work
[from_ippi]
exten => s,1,Goto(work,3000,1)

slemoal
31/01/2018, 10h59
et si tu essayais un truc du genre:

[ivr]
exten = s,1,Answer()
exten = s,n,Set(HI_PASSAGES=0)
exten = s,n(fail),Set(HI_PASSAGES=$[${HI_PASSAGES} + 1])
exten = s,n,GotoIf($[${HI_PASSAGES}<2]?s,start)
exten = s,n,GotoIf($[${HI_PASSAGES}>10]?s,etape2)
exten = s,n,WaitExten(2)


exten = s,n(start),Dial(SIP/ippi_outgoing/+336XXXXXXXX,15,m(default),Ttr)
exten = s,n,GotoIf($[${DIALSTATUS} = CHANUNAVAIL]?fail)


exten = s,n(etape2),Set(HI_PASSAGES=0)
exten = s,n(fail2),Set(HI_PASSAGES=$[${HI_PASSAGES} + 1])
exten = s,n,GotoIf($[${HI_PASSAGES}<2]?s,start2)
exten = s,n,GotoIf($[${HI_PASSAGES}>10]?s,etape3)
exten = s,n,WaitExten(2)


exten = s,n(start2),Dial(SIP/ippi_outgoing/+336XXXXXXXX,15,m(default),Ttr)
exten = s,n,GotoIf($[${DIALSTATUS} = CHANUNAVAIL]?fail2)


exten => s,n(etape3),VoiceMail(100)
exten => s,n,Hangup()