• Re: [un peu HS] Pickup dans asterisk

    From Basile Starynkevitch@21:1/5 to All on Fri Apr 18 12:00:01 2025
    On Fri, 2025-04-18 at 11:26 +0200, BERTRAND Joël wrote:



    Je suis désolé d'être un peu hors charte, je n'arrive pas à trouver une
    solution à un problème de configuration et les forums asterisk ne sont vraiment pas très actifs. Les seules informations trouvées ne permettent pas de résoudre mon problème.

    J'ai installé un serveur asterisk sur une machine Debian :

    Je présume que votre souci est un bogue reproductible.

    Avez vous compilé le code source? La version 22.3.0 est écrite en C. Et la taille du code source me parait raisonnable, et son organisation sensée.

    Je suggère donc de compiler ce code avec GCC et les options -O -g et d'utiliser
    un débogueur GDB. J'imagine que la lecture des fichiers de configuration est séquentielle.

    On pourrait envisager d'utiliser des analyseurs statiques gratuits (par exemple https://frama-c.com/ ....) ou payants https://www.absint.com/ ou d'améliorer un
    outil libre mais non maintenu (cf https://arxiv.org/abs/1109.0779 et code en https://github.com/bstarynk/bismon et documentation grossière en http://www.starynkevitch.net/Basile/bismon-chariot-doc.pdf ...)


    On pourrait aussi coder un greffon de GCC pour aider à trouver le bogue.

    JE n'en ai pas compris les détails mais intuite un problème de fichier de configuration (dont la lecture se ferait au démarrage).

    Librement.

    --
    Basile STARYNKEVITCH <basile@starynkevitch.net>
    8 rue de la Faïencerie http://starynkevitch.net/Basile/
    92340 Bourg-la-Reine https://github.com/bstarynk
    France https://github.com/RefPerSys/RefPerSys

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?BERTRAND_Jo=c3=abl?=@21:1/5 to All on Fri Apr 18 12:10:02 2025
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --MDyj2NxFjYcnGHBya7UeL21wwcRZ7M5Hh
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    Basile Starynkevitch a écrit :
    On Fri, 2025-04-18 at 11:26 +0200, BERTRAND Joël wrote:



    Je suis désolé d'être un peu hors charte, je n'arrive pas à trouver >> une
    solution à un problème de configuration et les forums asterisk ne sont
    vraiment pas très actifs. Les seules informations trouvées ne permettent >> pas de résoudre mon problème.

    J'ai installé un serveur asterisk sur une machine Debian :

    Je présume que votre souci est un bogue reproductible.

    Je ne suis pas sûr qu'il s'agisse d'un bug. Plus vraisemblablement d'une mauvaise compréhension de la conf.


    --MDyj2NxFjYcnGHBya7UeL21wwcRZ7M5Hh--

    -----BEGIN PGP SIGNATURE-----

    iHUEABYIAB0WIQQj8MW8iOsC2RXEznnFW/s/mMLXCAUCaAIi7AAKCRDFW/s/mMLX CKKFAQDm6kzvxAOgIZHIQbjX5vV4CWOPki5YUBwbq4h5bqdIxwD/SIAteNfYwUie Mwf8K+KZQnXA1EWamOu+nOcZK+LL8A0=
    =Z69p
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?BERTRAND_Jo=c3=abl?=@21:1/5 to All on Fri Apr 18 11:40:02 2025
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --bS5hvaZtOribSLkPR99fPWSdmV6zSuTBl
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    Bonjour à tous,

    Je suis désolé d'être un peu hors charte, je n'arrive pas à trouver une
    solution à un problème de configuration et les forums asterisk ne sont vraiment pas très actifs. Les seules informations trouvées ne permettent
    pas de résoudre mon problème.

    J'ai installé un serveur asterisk sur une machine Debian :
    Asterisk 22.3.0~dfsg+~cs6.15.60671435-1, Copyright (C) 1999 - 2025,
    Sangoma Technologies Corporation and others.
    Created by Mark Spencer <markster@digium.com>

    Je pense avoir à peu près tout configuré correctement, ce serveur asterisk me sert depuis bientôt deux ans.

    J'ai le dialplan suivant (simplifié, j'ai plus de SDA que cela) :

    [global]
    include => parkedcalls

    [output-id]
    exten => s,1,NoOp(## Your CallerID is : ${CALLERID(num)} ##)
    same => 2,GotoIf($[${CALLERID(num)} = 6001]?3:5)
    same => 3,Set(CALLERID(all)=Systella SAS <xxxxxxxxxxx>)
    same => 4,Return()
    same => 5,Set(CALLERID(all)=Systella SAS <xxxxxxxxxxx>)
    same => 6,Return()

    [internal]
    exten => _60XX,1,Dial(PJSIP/${EXTEN},,tT)
    same => n,Hangup()
    exten => _00[1-79]XXXXXXXX,1,Answer()
    same => n,Gosub(output-id,s,1)
    same => n,Dial(PJSIP/${EXTEN:1}@SBSR)
    same => n,Hangup()

    [sbsr]
    exten => +xxxxxxxxxxx,1,Dial(PJSIP/6001,30,tT)
    same => n,Dial(PJSIP/6001 & PJSIP/6002)
    same => n,Hangup()
    exten => +xxxxxxxxxxx,1,Dial(PJSIP/6002,30,tT)
    same => n,Dial(PJSIP/6002 & PJSIP/6001)
    same => n,Hangup()

    Ça fonctionne. Dans le fichier features.conf, j'ai écrit :

    [general]
    xfersound = beep
    xferfailsound = beeperr
    pickupexten = *8
    pickupsound = beep
    pickupfailsound = beeperr
    featuredigittimeout = 2000
    atxferabort = *1
    atxfercomplete = *2
    atxferthreeway = *3
    atxferswap = *4

    [featuremap]
    atxfer => *2
    blindxfer => #2

    Je peux transférer des appels, les récupérer, avoir des conférences à
    trois... La seule chose que je n'arrive pas à faire fonctionner, c'est
    le pickup. Normalement, lorsqu'un téléphone sonne, je peux le récupérer avec *8. Sauf que non.

    Exemple :

    -- Executing [+xxxxxxxxxx@sbsr:1] Dial("PJSIP/SBSR-00000001", "PJSIP/6002,30,tT") in new stack
    -- Called PJSIP/6002
    -- PJSIP/6002-00000002 is ringing
    > 0x7f8a880a0640 -- Strict RTP learning after remote address set
    to: 192.168.10.253:16402
    > 0x7f8a880a0640 -- Strict RTP switching to RTP target address 192.168.10.253:16402 as source

    Je prends un autre téléphone et je tape *8. Je n'obtiens qu'une erreur
    (et rien d'utilisable dans les logs).

    -- <PJSIP/6001-00000003> Playing 'beeperr.gsm' (language 'fr')

    J'ai essayé avec ou sans les ring_group et call_group, j'ai toujours la
    même erreur.

    Je prends toute suggestion, y compris un pointeur vers une doc exhaustive.

    Merci de vos lumières,

    JB


    --bS5hvaZtOribSLkPR99fPWSdmV6zSuTBl--

    -----BEGIN PGP SIGNATURE-----

    iHUEABYIAB0WIQQj8MW8iOsC2RXEznnFW/s/mMLXCAUCaAIaqAAKCRDFW/s/mMLX CFNlAQD4MaNhOPtTuw28B1OPbpt8HVPJIUfU6KPHEvpwn6QpcAEAoKajPAb1aO7r 8cqLqvO5ZrkJ2gx3Fuvd20iItKWtmAc=
    =D/dt
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Basile Starynkevitch@21:1/5 to All on Fri Apr 18 12:20:01 2025
    On Fri, 2025-04-18 at 12:01 +0200, BERTRAND Joël wrote:
    Basile Starynkevitch a écrit :
    On Fri, 2025-04-18 at 11:26 +0200, BERTRAND Joël wrote:



    Je suis désolé d'être un peu hors charte, je n'arrive pas à
    trouver
    une
    solution à un problème de configuration et les forums asterisk ne sont vraiment pas très actifs. Les seules informations trouvées ne permettent
    pas de résoudre mon problème.

    J'ai installé un serveur asterisk sur une machine Debian :

    Je présume que votre souci est un bogue reproductible.

    Je ne suis pas sûr qu'il s'agisse d'un bug. Plus vraisemblablement d'une mauvaise compréhension de la conf.

    Par quarante années d'expérience en développement la recompilation du code libre
    (avec les options -O -g simultanées de GCC) en vaut la peine.

    Ensuite l'utilisation de GDB pour comprendre comment fonctionne la lecture des fichiers de configurations.

    Et encore plus prosaïquement, ne plus y penser jusqu'à lundi et se reposer le cerveau.

    Cordialement

    --
    Basile STARYNKEVITCH <basile@starynkevitch.net>
    8 rue de la Faïencerie http://starynkevitch.net/Basile/
    92340 Bourg-la-Reine https://github.com/bstarynk
    France https://github.com/RefPerSys/RefPerSys

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?BERTRAND_Jo=c3=abl?=@21:1/5 to All on Fri Apr 18 14:00:01 2025
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --vjUnayRQdDOjEsn6iqvhOOxS3vugySMRc
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    Bon, je me réponds à moi-même.

    Pour que ça fonctionne, il ne faut pas utiliser *8 mais *8#. je ne vois
    pas d'où vient ce '#'.

    JB


    --vjUnayRQdDOjEsn6iqvhOOxS3vugySMRc--

    -----BEGIN PGP SIGNATURE-----

    iHUEABYIAB0WIQQj8MW8iOsC2RXEznnFW/s/mMLXCAUCaAI+IwAKCRDFW/s/mMLX CGawAP46ues3FeUDoaC7mjKde0mJhjg9hrFDLWt9rrmCUUbfzAD+Mz/yQG2z99nO z1DG4zRpsNF37Qnri9x83iEsymNxWwc=
    =KfIb
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?BERTRAND_Jo=c3=abl?=@21:1/5 to All on Fri Apr 18 13:50:01 2025
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --RdhIUBcm7z96B8UoqIxd6LOSsaJ72p63c
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    didier gaumet a écrit :
    Le 18/04/2025 à 11:26, BERTRAND Joël a écrit :
        Bonjour à tous,

        Je suis désolé d'être un peu hors charte, je n'arrive pas à
    trouver une
    solution à un problème de configuration et les forums asterisk ne sont
    vraiment pas très actifs. Les seules informations trouvées ne permettent >> pas de résoudre mon problème.

        J'ai installé un serveur asterisk sur une machine Debian :
    Asterisk 22.3.0~dfsg+~cs6.15.60671435-1, Copyright (C) 1999 - 2025,
    Sangoma Technologies Corporation and others.
    Created by Mark Spencer <markster@digium.com>

        Je pense avoir à peu près tout configuré correctement, ce serveur >> asterisk me sert depuis bientôt deux ans.

        J'ai le dialplan suivant (simplifié, j'ai plus de SDA que cela) : >>
    [global]
        include => parkedcalls

    [output-id]
             exten => s,1,NoOp(## Your CallerID is : ${CALLERID(num)} ##)
                     same => 2,GotoIf($[${CALLERID(num)} = 6001]?3:5)
                     same => 3,Set(CALLERID(all)=Systella SAS <xxxxxxxxxxx>)
                     same => 4,Return()
                     same => 5,Set(CALLERID(all)=Systella SAS <xxxxxxxxxxx>)
                     same => 6,Return()

    [internal]
             exten => _60XX,1,Dial(PJSIP/${EXTEN},,tT)
                     same => n,Hangup()
             exten => _00[1-79]XXXXXXXX,1,Answer()
                     same => n,Gosub(output-id,s,1)
                     same => n,Dial(PJSIP/${EXTEN:1}@SBSR)
                     same => n,Hangup()

    [sbsr]
             exten => +xxxxxxxxxxx,1,Dial(PJSIP/6001,30,tT)
                     same => n,Dial(PJSIP/6001 & PJSIP/6002)
                     same => n,Hangup()
             exten => +xxxxxxxxxxx,1,Dial(PJSIP/6002,30,tT)
                     same => n,Dial(PJSIP/6002 & PJSIP/6001)
                     same => n,Hangup()

        Ça fonctionne. Dans le fichier features.conf, j'ai écrit :

    [general]
    xfersound = beep
    xferfailsound = beeperr
    pickupexten = *8
    pickupsound = beep
    pickupfailsound = beeperr
    featuredigittimeout = 2000
    atxferabort = *1
    atxfercomplete = *2
    atxferthreeway = *3
    atxferswap = *4

    [featuremap]
    atxfer => *2
    blindxfer => #2

        Je peux transférer des appels, les récupérer, avoir des conférences à
    trois... La seule chose que je n'arrive pas à faire fonctionner, c'est
    le pickup. Normalement, lorsqu'un téléphone sonne, je peux le récupérer >> avec *8. Sauf que non.

        Exemple :

         -- Executing [+xxxxxxxxxx@sbsr:1] Dial("PJSIP/SBSR-00000001",
    "PJSIP/6002,30,tT") in new stack
         -- Called PJSIP/6002
         -- PJSIP/6002-00000002 is ringing
            > 0x7f8a880a0640 -- Strict RTP learning after remote address set
    to: 192.168.10.253:16402
            > 0x7f8a880a0640 -- Strict RTP switching to RTP target address
    192.168.10.253:16402 as source

        Je prends un autre téléphone et je tape *8. Je n'obtiens qu'une
    erreur
    (et rien d'utilisable dans les logs).

         -- <PJSIP/6001-00000003> Playing 'beeperr.gsm' (language 'fr')

        J'ai essayé avec ou sans les ring_group et call_group, j'ai
    toujours la
    même erreur.

        Je prends toute suggestion, y compris un pointeur vers une doc
    exhaustive.

        Merci de vos lumières,

        JB


    Bonjour,

    avertissement: le réseau (en général et asterisk en particulier) et moi ça fait deux

    deuxième avertissement: j'ai pas réellement étudié ta conf ni la doc asterisk, donc je vais peut-être dire des choses sans intérêt dans ton cas

    La doc est là: https://docs.asterisk.org/

    1) il y a un truc qui pourrait éventuellement t'intéresser : https://docs.asterisk.org/Asterisk_16_Documentation/API_Documentation/Module_Configuration/features/?h=features.conf#atxferswap

    "[...]
    pickupexten¶

    In order for the pickup attempt to be successful, the party attempting
    to pick up the call must either have a namedpickupgroup in common with a ringing party's namedcallgroup or must have a pickupgroup in common with
    a ringing party's callgroup.
    [...]"
    Cette condition est-elle remplie?

    Oui. J'ai essayé avec et sans cette condition (pour voir les messages d'erreur éventuels). Même motif, même punition.

    2) il y a une partie de la doc qui concerne spécifiquement le pickup et
    qui explique les différentes méthodes comme les contextes à mettre en oeuvre:
    https://docs.asterisk.org/Configuration/Features/Call-Pickup/
    ça pourrait être intéressant de vérifier que les différentes variables sont positionnées correctement (peut-être qu'une mise à jour ou un autre évènement a fait sauter une partie de ton contexte, ce qui expliquerait
    que ça marchait avant et plus maintenant)

    3) a priori d'après https://docs.asterisk.org/Configuration/Channel-Drivers/Mobile-Channel/Mobile-Channel-Debugging/?h=debug

    tu peux activer le debugging comme suit:
    "turn on Asterisk debugging with 'core set debug 1'"
    pour avoir des messages d'erreur plus parlants

    J'ai naturellement déjà fait tout cela :-(

    Mais merci pour l'aide,

    JB


    --RdhIUBcm7z96B8UoqIxd6LOSsaJ72p63c--

    -----BEGIN PGP SIGNATURE-----

    iHUEABYIAB0WIQQj8MW8iOsC2RXEznnFW/s/mMLXCAUCaAI6ngAKCRDFW/s/mMLX CP5hAQDqrUcVJrxBjyeMX5Jq8aeJQHqFF6aZMUICFzd5Q/KgyQEAmrlusQbG4aTj 4HmOIwH2Qp6Xr6Er0mLXVp5Fhwferw0=
    =XUOP
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)