PDA

Voir la version complète : [Xivo] SDA sur 2 postes



renaud07
28/09/2016, 01h21
Bonsoir,

Soit le n° 0123456789 associée à une ligne SIP avec 2 appels simultanés et 4 postes internes 400, 401, 402, 403.

Comment faire pour qu'un appel entrant soit redirigé sur le poste 401 si il y a déjà une communication extérieure sur le 400 par exemple ? En gros, avoir le même fonctionnement que des lignes groupées : si un téléphone est en communication, l'autre sonne. J'ai cherché un peu mais j'ai rien trouvé à moins que je n'utilise pas les bons termes ?

Merci d'avance

renaud07
28/09/2016, 01h46
Comme d'hab', il suffit que je continue à chercher pour trouver un truc, qu'est ce c'est énervant...

Apparemment ce topic (http://www.asterisk-france.org/threads/3506-Double-redirection-d-appelle?highlight=redirection+appel) répond à mon problème, MAIS il est fait pour de l'asterisk en ligne de commande et pas une distro... Comment l'adapter pour Xivo du coup ?

Est-ce que ça peut marcher en mettant personnalisé dans la gestion des appels entrants ? Mais de tout évidence c'est une autre syntaxe car simple copier-coller ne fonctionne pas.

Sinon, je ne pensais pas que c'était aussi simple.

jean
28/09/2016, 20h33
je créerai un groupe avec ces 4 postes et la stratégie de sonnerie que tu souhaites

renaud07
28/09/2016, 22h32
Ah d'accord, je n'avais même pas vu que dans les groupes on pouvait définir une stratégie de sonnerie, je pensais que ça faisait sonner tous les postes.

Donc si je résume, je crée un groupe, sélectionne la première proposition "dans l'ordre de leur définition (ou ajout)", je rente les postes via l’onglet utilisateurs et je laisse décoché "Appeler un membre déjà en communication". C'est ça ? Par contre je vois que je ne peux sélectionner dans le contexte que appels internes, ça a une importance ici vu qu'après je paramètre ma SDA ? J'aurais tendance à penser que non.

Pour le numéro je laisse vide ou il faut mettre quelque chose ?

EDIT : bon apparemment il faut bien mettre un numéro (j'ai rajouté un autre intervalle dans groupes (400-450) du contexte interne), par contre, quand je paramètre ma SDA ça ne fonctionne pas, lorsque j'ajoute le groupe ça me dit "Le numero est hors interval du contexte". Alors que j'ai trouvé un tuto où c'est fait comme ça et apparemment ça fonctionne... Mais chez moi non...

jean
28/09/2016, 23h13
Oui il fayt chercher dans le menu contexte onglet groupe

renaud07
28/09/2016, 23h58
Je crois avoir compris d'où vient le problème : il faut en fait que la SDA que je renseigne dans appels entrants corresponde au même numéro que dans le contexte from-extern (ou autre rajouté), ce qui n'était justement pas le cas, car j'avais fait un autre essai avant avec un n° différent.

Maintenant ça marche que ce soit avec l'utilisateur ou le groupe :jap:

Merci de m'avoir dit pour les groupes.

renaud07
29/09/2016, 21h06
J'avance dans mes tests mais je n'arrive toujours pas à faire fonctionner les appels que ce soit entrants ou sortants.

J'ai installé un autre xivo afin de simuler le réseau public avec divers n°. J'ai essayé avec et sans "Accepter un appel non authentifié" (allowguest)

D'après ce que j'a lu il faut inclure le context sortant et entrant dans le context interne, ce que j'ai fait mais ça ne fonctionne pas.

- Pour les appels sortants, alors que mon trunk bien enregistré sur le xivo "public".

[Sep 29 19:14:11] -- Executing [dial@outcall:5] CELGenUserEvent("SIP/rkaimy9q-00000006", "XIVO_OUTCALL") in new stack
[Sep 29 19:14:11] -- Executing [dial@outcall:6] Set("SIP/rkaimy9q-00000006", "CONNECTEDLINE(num,i)=04XXXXXX10") in new stack
[Sep 29 19:14:11] -- Executing [dial@outcall:7] Dial("SIP/rkaimy9q-00000006", "SIP/principal/04XXXXXX10,,o(04XXXXXX10)") in new stack
[Sep 29 19:14:11] WARNING[18845][C-00000007]: app_dial.c:2429 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Subscriber absent)
[Sep 29 19:14:11] == Everyone is busy/congested at this time (1:0/0/1)
[Sep 29 19:14:11] -- Executing [dial@outcall:8] Goto("SIP/rkaimy9q-00000006", "CHANUNAVAIL,1") in new stack
[Sep 29 19:14:11] -- Goto (outcall,CHANUNAVAIL,1)75292180
[Sep 29 19:14:11] -- Executing [CHANUNAVAIL@outcall:1] Goto("SIP/rkaimy9q-00000006", "redial,1") in new stack
[Sep 29 19:14:11] -- Goto (outcall,redial,1)
[Sep 29 19:14:11] -- Executing [redial@outcall:1] Set("SIP/rkaimy9q-00000006", "TRUNKINDEX=1") in new stack
[Sep 29 19:14:11] -- Executing [redial@outcall:2] GotoIf("SIP/rkaimy9q-00000006", "?dial,1") in new stack
[Sep 29 19:14:11] -- Executing [redial@outcall:3] Playback("SIP/rkaimy9q-00000006", "congestion-call") in new stack
[Sep 29 19:14:11] > 0x27e4a70 -- Probation passed - setting RTP source address to 192.168.1.3:7078


xivo*CLI> sip show registry
Host dnsmgr Username Refresh State Reg.Time
192.168.1.20:5260 N bejo96wo 45 Registered Thu, 29 Sep 2016 23:25:58
1 SIP registrations.



xivo*CLI> sip show peers
Name/username Host Dyn Forcerport Comedia ACL Port Status Description
bejo96wo/s 192.168.1.19 D Yes Yes 5260 OK (1 ms) "asterisk" <04XXXXX14>
u10sagb2/u10sagb2 192.168.1.14 D Yes Yes 44844 OK (513 ms) "renaud" <04XXXXX10>

- Pour les appels entrants : il trouve une boucle et si je ne mets pas le context entrant dans le context interne ça me dit not found donc apparemment il le faut bien...

[Sep 29 22:15:34] -- Executing [userevent@hangup_handlers:1] NoOp("SIP/rkaimy9q-0000001d", "Sending Hangup userevent") in new stack
[Sep 29 22:15:34] -- Executing [userevent@hangup_handlers:2] UserEvent("SIP/rkaimy9q-0000001d", "Hangup,XIVO_USERUUID: ad21dcd3-133d-422e-877d-3ae0a07add0a") in new stack
[Sep 29 22:15:34] -- Executing [userevent@hangup_handlers:3] Return("SIP/rkaimy9q-0000001d", "") in new stack
[Sep 29 22:15:34] == Spawn extension (outcall, redial, 4) exited non-zero on 'SIP/rkaimy9q-0000001d'
[Sep 29 22:15:34] -- SIP/rkaimy9q-0000001d Internal Gosub(hangup_handlers,userevent,1) complete GOSUB_RETVAL=
[Sep 29 22:15:41] == Using SIP RTP TOS bits 104
[Sep 29 22:15:41] == Using SIP RTP CoS mark 5
[Sep 29 22:15:42] -- Executing [s@default:1] NoOp("SIP/192.168.1.20-0000001e", "") in new stack
[Sep 29 22:15:42] -- Executing [s@default:2] GotoIf("SIP/192.168.1.20-0000001e", "1?:not-sip") in new stack
[Sep 29 22:15:42] -- Executing [s@default:3] GotoIf("SIP/192.168.1.20-0000001e", "1?:error-loop") in new stack
[Sep 29 22:15:42] -- Executing [s@default:4] Set("SIP/192.168.1.20-0000001e", "XIVO_DID_NEXT_EXTEN=s") in new stack
[Sep 29 22:15:42] -- Executing [s@default:5] Set("SIP/192.168.1.20-0000001e", "XIVO_FROM_S=1") in new stack
[Sep 29 22:15:42] -- Executing [s@default:6] Goto("SIP/192.168.1.20-0000001e", "from-principal,s,1") in new stack
[Sep 29 22:15:42] -- Goto (from-principal,s,1)
[Sep 29 22:15:42] -- Executing [s@from-principal:1] NoOp("SIP/192.168.1.20-0000001e", "") in new stack
[Sep 29 22:15:42] -- Executing [s@from-principal:2] GotoIf("SIP/192.168.1.20-0000001e", "1?:not-sip") in new stack
[Sep 29 22:15:42] -- Executing [s@from-principal:3] GotoIf("SIP/192.168.1.20-0000001e", "0?:error-loop") in new stack
[Sep 29 22:15:42] -- Goto (from-principal,s,10)
[Sep 29 22:15:42] -- Executing [s@from-principal:10] NoOp("SIP/192.168.1.20-0000001e", "") in new stack
[Sep 29 22:15:42] -- Executing [s@from-principal:11] Log("SIP/192.168.1.20-0000001e", "ERROR, Dialplan loop detected. Got SIP header To: <sip:s@192.168.1.19:5260>") in new stack
[Sep 29 22:15:41] ERROR[6978][C-00000029]: Ext. s:11 @ from-principal: Dialplan loop detected. Got SIP header To: <sip:s@192.168.1.19:5260>
[Sep 29 22:15:42] -- Executing [s@from-principal:12] Hangup("SIP/192.168.1.20-0000001e", "") in new stack
[Sep 29 22:15:42] == Spawn extension (from-principal, s, 12) exited non-zero on 'SIP/192.168.1.20-0000001e'



Soit je m'y prend mal, soit y'a un bug quelque part... Sans compter les plantages inexpliqués d'asterisk qui survienne de temps en temps, j'espère que ça va pas me faire ça en prod sinon...

renaud07
30/09/2016, 01h38
Ça y est les appels sortants fonctionnent ! Et quelle était la cause ? Un paramétrage en ip dynamique ! J'ai passé en statique et magique, ça marche, me demande bien pourquoi ça a une importance...

Du côté des appels entrants ça coince toujours avec la boucle, je ne vois pas d'où ça peut venir :

[Sep 30 01:43:32] -- Executing [s@from-principal:1] NoOp("SIP/principal-00000003", "") in new stack
[Sep 30 01:43:32] -- Executing [s@from-principal:2] GotoIf("SIP/principal-00000003", "1?:not-sip") in new stack
[Sep 30 01:43:32] -- Executing [s@from-principal:3] GotoIf("SIP/principal-00000003", "1?:error-loop") in new stack
[Sep 30 01:43:32] -- Executing [s@from-principal:4] Set("SIP/principal-00000003", "XIVO_DID_NEXT_EXTEN=s") in new stack
[Sep 30 01:43:32] -- Executing [s@from-principal:5] Set("SIP/principal-00000003", "XIVO_FROM_S=1") in new stack
[Sep 30 01:43:32] -- Executing [s@from-principal:6] Goto("SIP/principal-00000003", "from-principal,s,1") in new stack
[Sep 30 01:43:32] -- Goto (from-principal,s,1)
[Sep 30 01:43:32] -- Executing [s@from-principal:1] NoOp("SIP/principal-00000003", "") in new stack
[Sep 30 01:43:32] -- Executing [s@from-principal:2] GotoIf("SIP/principal-00000003", "1?:not-sip") in new stack
[Sep 30 01:43:32] -- Executing [s@from-principal:3] GotoIf("SIP/principal-00000003", "0?:error-loop") in new stack
[Sep 30 01:43:32] -- Goto (from-principal,s,10)
[Sep 30 01:43:32] -- Executing [s@from-principal:10] NoOp("SIP/principal-00000003", "") in new stack
[Sep 30 01:43:32] -- Executing [s@from-principal:11] Log("SIP/principal-00000003", "ERROR, Dialplan loop detected. Got SIP header To: <sip:s@192.168.1.19:5260>") in new stack
[Sep 30 01:43:32] ERROR[28986][C-00000003]: Ext. s:11 @ from-principal: Dialplan loop detected. Got SIP header To: <sip:s@192.168.1.19:5260>
[Sep 30 01:43:32] -- Executing [s@from-principal:12] Hangup("SIP/principal-00000003", "") in new stack
[Sep 30 01:43:32] == Spawn extension (from-principal, s, 12) exited non-zero on 'SIP/principal-00000003'


Que ce soit avec ou sans allowgest. Et j'ai pu virer le context entrant du context interne (maintenant que l'ip est en statique on dirait que ça gène pas). Entre temps j'ai rajouté dans l'option du trunk Réécriture du champ From-Domain et from-user et ça va mieux car avant j'avais une erreur d'authentification lors de l'appel.

quintana
01/10/2016, 16h43
IP dynamique veut dire que tu dois recevoir un register pour connaître l'IP de ton peer distant car il est dynamique. Pour l'appel entrant as tu mis un register ?

renaud07
02/10/2016, 00h56
J'ai essayé en ajoutant une interconnexion avec le context entrant, ça le prend bien en compte, mais j'ai toujours l'erreur Dialplan loop detected. Sur le tuto xivo que j'ai il n'y a que l'interconnexion pour les appels sortants qui est présente. Et apparemment ça fonctionne bien.

Après c'est peut-être dû à ma tentative de simulation. Pour le xivo public j'ai créer un user sur lequel j'enregistre l'autre xivo (avec le numéro en SDA), et un autre pour mon téléphone. Et je fais un simple appel interne sur le xivo public. C'est peut-être là que ça coince ? Et pour réceptionner l'appel j'ai un compte interne sur le xivo normal enregistré sur mon PC.

Un appel entre les 2 numéros si je m’enregistre directement sur le xivo public fonctionne bien.


[Oct 2 00:52:11] -- Executing [s@from-principal:1] NoOp("SIP/principal-ent-00000036", "") in new stack
[Oct 2 00:52:11] -- Executing [s@from-principal:2] GotoIf("SIP/principal-ent-00000036", "1?:not-sip") in new stack
[Oct 2 00:52:11] -- Executing [s@from-principal:3] GotoIf("SIP/principal-ent-00000036", "1?:error-loop") in new stack
[Oct 2 00:52:11] -- Executing [s@from-principal:4] Set("SIP/principal-ent-00000036", "XIVO_DID_NEXT_EXTEN=s") in new stack
[Oct 2 00:52:11] -- Executing [s@from-principal:5] Set("SIP/principal-ent-00000036", "XIVO_FROM_S=1") in new stack
[Oct 2 00:52:11] -- Executing [s@from-principal:6] Goto("SIP/principal-ent-00000036", "from-principal,s,1") in new stack
[Oct 2 00:52:11] -- Goto (from-principal,s,1)
[Oct 2 00:52:11] -- Executing [s@from-principal:1] NoOp("SIP/principal-ent-00000036", "") in new stack
[Oct 2 00:52:11] -- Executing [s@from-principal:2] GotoIf("SIP/principal-ent-00000036", "1?:not-sip") in new stack
[Oct 2 00:52:11] -- Executing [s@from-principal:3] GotoIf("SIP/principal-ent-00000036", "0?:error-loop") in new stack
[Oct 2 00:52:11] -- Goto (from-principal,s,10)
[Oct 2 00:52:11] -- Executing [s@from-principal:10] NoOp("SIP/principal-ent-00000036", "") in new stack
[Oct 2 00:52:11] -- Executing [s@from-principal:11] Log("SIP/principal-ent-00000036", "ERROR, Dialplan loop detected. Got SIP header To: <sip:s@192.168.1.19:5260>") in new stack
[Oct 2 00:52:11] ERROR[31994][C-00000023]: Ext. s:11 @ from-principal: Dialplan loop detected. Got SIP header To: <sip:s@192.168.1.19:5260>
[Oct 2 00:52:11] -- Executing [s@from-principal:12] Hangup("SIP/principal-ent-00000036", "") in new stack

renaud07
03/10/2016, 03h12
Ça y est tout fonctionne ! J'ai enfin trouvé la cause : il fallait que je renseigne le champ "Contact" dans l'interconnexion SIP onglet enregistrement, avec le numéro de tel. Car en fait je n'y pensais pas mais sur le tuto, le numéro est l'identifiant (dans le cas de free par exemple) hors sur xivo c'est une suite de chiffres et de lettres, il faut donc que je rajoute le numéro à la main.

J'ai d'abord coché la case "Utiliser l'extension de l'interconnexion" et là ça me mettait " Call from 'bejo96wo' (192.168.1.20:5260) to extension 'callbackextension' rejected because extension not found in context 'from-principal'. Je me suis dit ah, on touche au but. Puis j'ai mis directement le numéro et ça fonctionne enfin :)

Par contre ça me présente du coup mon propre numéro lors de l'appel, c'est pas le but recherché, mais bon :lol: Plus sérieusement y'a un moyen pour que ça m'affiche le numéro du correspondant ?

renaud07
04/10/2016, 15h59
Étrange... J'ai testé en mettant le numéro directement pour l'identifiant, mais ça ne passe toujours pas : loop detected.

Et si je coche "Utiliser l'extension de l'interconnexion" ça me dit toujours "rejected because..." avec cette fois le numéro alors que je l'ai bien renseigné dans le contexte des appels entrants.

Faut le mettre obligatoirement dans le champ contact pour que ça passe...

Je sèche :sweat:

Ou alors je me casse la tête pour rien car la présentation du numéro fonctionne différemment chez OVH par exemple ?

renaud07
06/10/2016, 17h12
J'ai trouvé comment afficher le numéro. Il faut modifier : /etc/xivo/asterisk/xivo_in_callerid.conf

Et ajouter dans la section [national1]

callerid = ^0[1-9]\d{8}$
strip = 1
add = +33

Dans mon cas il n'y avait que callerid de renseigné, j'ai rajouté le reste et désormais ça m'affiche sous la forme "+33XXXXXXXXX" Et j'ai re-paramétré normalement. Il faut par contre toujours renseigner le champ contact.