Solution pour différencier appels internes et externes avec renvois

Bonjour à tous,

J’ai une config un peu spéciale, où j’aurais besoin que le standard puisse appeler les utilisateurs sans qu’il y ait l’impact des renvois d’appels des users.

Quand on appelle un utilisateur, s’il ne répond pas, c’est renvoyé vers le standard.
Je ne peux pas utiliser de groupe d’appel avec ce user, car dans ces conditions, le user ne peut plus gérer ses renvois d’appels inconditionnels, ça ne fonctionne pas.

Du coup, quand le standard appelle le user, ça revient vers lui.

J’ai pensé au filtre patron/secrétaire, mais je ne trouve pas de doc, et je ne comprends même pas comment on s’en sert :sweat_smile:

Vous avez une idée ?

Salut à tous,

Je n’ai malheureusement pas de retour du support Wazo (à qui j’ai dit que je faisais aussi un message ici, je suis assez clair et honnête avec ça, ils ne m’embêtent pas…)

Et toujours rien sur les filtres patron / secrétaire…

Toujours pas d’idée ?

Salut @ZaleXxXx,

C’est juste une idée mais peut-être que ça peut apporter une solution un peu moins tordu.
ça reste à tester mais je pense que c’est jouable.

Il faut créer sur le wazo pour chaque user un user “publique” et un “privé”, je m’explique :

  • le user “publique” est celui déjà configuré sur le tel comme vous le décrivez aujourd’hui avec la gestion des renvois, boîtes vocales etc
  • le user “privé” serait un autre user avec un autre numéro interne sur un plan de numérotation différent de celui du “publique” par exemple enregistré en second compte SIP sur les téléphones des users en question

Pour la gestion des appels classiques, vous faites arriver les appels sur le user “publique” et vous communiquez les numéros interne des users “privés” au standard.

Donc quand un appel vient de l’extérieur ça renvois sur le user “publique” qui a un renvoi de configurer mais quand ça vient du standard ça renvois sur le user “privé” qui lui n’a pas de renvois. On peut même pousser la conf pour que sur le user “privé” ça bascule sur un portable au bout de X secondes pour que le standard est absolument quelqu’un au téléphone.

Voilà tout, c’est une idée, c’est sûrement pas la meilleure mais ça peut peut-être dépanner.
Il y a peut-être quelque chose à faire avec les agents aussi, je sais pas trop…

Tenez-moi au courant :wink:
Merci

@+
Bastien

Salut Bastien,

C’était pas bête du tout, un poil tordu quand même, avoue, mais j’adore :rofl:

Alors voilà les soucis rencontrés :

  1. Effectivement le standard peut appeler le user directement, mais il n’a plus les BLF quand le user reçoit un appel sur le user public, du coup il a toujours des lumières vertes, et perd tous les avantages de la supervision sur son super poste soucoupe volante de l’espace de 6 m² sur son bureau…
    Le problème aussi c’est que le standard appellera le user privé, qui ne va jamais répondre, et ça va finir en pugilat :rofl:

  2. Lorsqu’un user est absent, et qu’il veut faire un renvoi sur son mobile depuis son poste, ça ne fonctionne que sur une seule ligne (user privé ou public), je n’arrive pas à ce que le renvoi sur sur toutes ses lignes SIP

  3. Impossible de gérer les stats d’appels, puisque le user public reçoit un appel direct, ses stats sont différentes du standard qui va lui transférer un appel sur le user privé.
    Oui, l’info est importante du coup, le client suit des stats de traitement des appels, je lui fournis une pseudo option de call tracking… et il suit le traitement des appels par les usagers

Tu saurais à quoi sert le filtre patron / secrétaire ? Parce que sans trouver la moindre info, je trouve le nom inspirant, mais je ne comprends pas l’usage :sweat_smile:

Je n’ai jamais utilisé les agents, je vais regarder ce que c’est…

Merci beaucoup en tout cas !

En effet, il y a pas mal d’inconvénient :sweat_smile:

Pour le patron / secrétaire, je ne connais pas mais je pense que c’est plus dans l’optique de:

  • tu définis un user qui est patron
  • d’autres qui sont secrétaires

Et ça definit la stratégie de sonnerie quand t’appelles le patron :

  • ça sonne aux secrétaires
  • ça sonne au patron puis aux secrétaire au bout de X secondes
  • etc

Je ne pense pas que ça va répondre à ton besoin.

Mais du coup je pense que les agents / queues non plus…
Sauf que tu peux imaginer faire une queue par user sur laquelle tu fais arriver les appels publiques et sur laquelle tu mets le fallback fail vers la boîte vocale du user. Le user se log et se délog pour activer son répondeur au final.

Sources : https://wazo-platform.org/uc-doc/contact_center/queues

Fallbacks

Calls can be diverted on no answer with /queues/{queue_id}/fallbacks endpoints:

  • noanswer_destination: The call reached the timeout and no agent answered the call.
  • congestion_destination: The number of calls waiting has reached the options: maxlen.
  • fail_destination: No agent was available to answer the call when the call entered the queue (options: joinempty) or the call was queued and no agents were available to answer (options: leavewhenempty)

Le standard appelle toujours par le numéro interne et ne passe pas par la queue et n’a donc pas les renvois.
Tu récupères alors la supervision sur si le user est en com ou pas et les stats d’appels.

C’est aussi une idée…un peu lourd à mettre en place mais je pense que ça répond à ton besoin…

Dernière piste sinon, une sous-routine de prétraitement sur chaque user qui regarde l’appelant et qui, si c’est le standard, quitte le dialplan classique pour faire sonner le téléphone en continu

T’en penses quoi ? :slight_smile:

Salut, je n’ai pas regardé ton point mais je ne vois aucune raison de ne pas y arriver. Faut sûrement overwrite du dialplan. Es-tu à l’aise pour faire cela. Faut savoir que dans wazo tout est pensé pour être réécrit pour ne pas rester bloqué sur un use case. Parfois ça va demander un peu plus de travail mais globalement beaucoup de choses sont faisable.

En premier fait une partie de ton use case et regarde le dialplan, puis vois où ça ne te convient pas et modifie le en utilisant des sous routine ou alors des overwrite complet du dialplan.

Je vais essayer de regarder pour t’aider.

Sylvain

Salut Sylvain,

Je dévie un peu du sujet mais c’est parce que t’en parle.
Comment tu fais des overwrite complet du dialplan ? Les sous-routine je connais mais pas la modif direct du dialplan.

Merci

@+

Tu dois créer un fichier avec le même nom de contexte dans ton extensions_extra.d. J’ai déjà écrit de quoi sur le forum pour info.

Salut Bastien,

Je trouve que l’idée du dial plan est pas mal, et ça semble rejoindre ce que dit ensuite @quintana !
Ma sous-routine va faire un filtre en gros, si j’ai bien compris, pour déterminer que c’est l’extension du standard qui appelle, et modifier le traitement, seulement j’arrive toujours au user, qui a ses renvois d’appels…

Il va juste falloir que je regarde, car je ne suis pas du tout à l’aise avec ça malheureusement.

Je pense que dans mon cas, cela ne doit pas être trop terrible, donc j’ai de l’espoir :sweat_smile:

Salut @quintana

Je viens de commencer à regarder, j’ai commencé là
Transfert numéro de l'appelant sur non réponse vers mobile - #5 by quintana?

Je vais en chercher d’autres, voir les possibilités des sous routines, car en bref, il faut que je fasse la sous-routine “coucou c’est le standard”, et le traitement “annule les renvois si c’est le standard” ?!

Je fais comme @Bastien , j’en profite pour poser la petite question du jour… est-ce qu’il y a une boîte à suggestions Wazo ? :rofl:

Salut Sylvain,

ça marche merci, je chercherais le post sur le forum à l’occaz

Salut Alexandre,

Oui, la sous-routine reste le plus propre et plus dans l’optique de wazo.

Je suis pas très à l’aise avec ça non plus mais je pense pas que tu sois obligé d’arriver au user avec les renvois, je pense que tu peux faire sonner la ligne SIP direct ou rattraper le dialplan après la vérification des renvois.

Peut-être que ça peut être quelque chose qui ressemble à ça :

exten = s,1,NoOp(*** Vérif source ***)
same = n,GotoIf($["${CALLERID(num)}" = "numInterneDuStandard"]?standard:exterieur)
same = n(standard),Dial(PJSIP/LigneSIPUserFinal)
same = n(exterieur), Return()

J’ai pas testé, je pense qu’il y a des erreurs mais c’est pour l’idée, les experts corrigeront :wink: