Affichage des résultats 1 à 10 sur 10

Discussion: SIP REFER et fonction Transfer [RESOLU]

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Association
    Date d'inscription
    septembre 2010
    Messages
    1 236
    Downloads
    0
    Uploads
    0
    [Synopsis]
    Transfer caller to remote extension

    [Description]
    Transfer([Tech/]dest[,options]): Requests the remote caller be transferred
    to a given destination. If TECH (SIP, IAX2, LOCAL etc) is used, only
    an incoming call with the same channel technology will be transfered.
    Note that for SIP, if you transfer before call is setup, a 302 redirect
    SIP message will be returned to the caller.

    The result of the application will be reported in the TRANSFERSTATUS
    channel variable:
    SUCCESS Transfer succeeded
    FAILURE Transfer failed
    UNSUPPORTED Transfer unsupported by channel driver

    Je ne vois pas de @

    Si tu remplace:

    exten => _X.,n,Transfer(SIP/10002@ccm)

    Par:

    exten => _X.,n,Transfer(SIP/ccm)

    Ça donne quoi ?

    Et pourquoi transfer et pas dial ?

  2. #2
    Membre Association
    Date d'inscription
    septembre 2010
    Messages
    1 236
    Downloads
    0
    Uploads
    0
    Question: Where - except for a SIP REFER - is this application of use, why not simply use Dial(), maybe together with a Local channel?

    Answer: For example, a SIP provider offering DIDs, you want calls to go to a colo box and then be transfered to other locations rather then waiting for the DID provider to update routes, by using this you save headaches with 1 way audio due to tracking firewalls not being able to track asyncronious SIP and RTP paths, and call delay if you and the colo are in different countries. Downside to doing something like this is you incur a slightly increase call setup delay while the call is bounced between servers, but no one will ever notice since most people take a few rings to actually answer.
    C'est ton cas ?

  3. #3
    Membre
    Date d'inscription
    septembre 2010
    Messages
    57
    Downloads
    0
    Uploads
    0
    De mémoire, il y avait un bug avec le transfer via REFER dans les versions précédant la 1.6.2.16.

  4. #4
    Membre Junior
    Date d'inscription
    octobre 2011
    Messages
    6
    Downloads
    0
    Uploads
    0
    En fait, Le Call Manager doit conserver la gestion de l'appel.
    Asterisk reçoit l'appel du call manager, joue les messages qui vont bien après être passé dans un AGI.
    Et le but est de relacher l'appel de l'Asterisk.

    Le transfert me permet de libérer l'appel et le call manager gère l'aboutement.

    exten => _X.,n,Transfer(SIP/ccm)
    => cela ne va pas convenir car on ne sais pas vers quel DN réaliser le transfert

    J'ai testé ça :
    exten => _X.,n,Transfer(SIP/10002)

    Cette configuration passe ( mais 1 fois sur 10 environ)
    Des fois => Musique attente CCM mais le poste 10002 ne sonne pas
    Des fois => Musique attente CCM et poste 100002 sonne ===> OK, on voudrais ça à tous les coups...
    Des fois => Congestion

    Peux être plus la configuration du Call Manager ?

  5. #5
    Membre Junior
    Date d'inscription
    octobre 2011
    Messages
    6
    Downloads
    0
    Uploads
    0
    Dans tous les cas, en CLI j'ai :
    Code:
    CLI>
      == Using SIP RTP CoS mark 5
        -- Executing [11111@test:1] NoOp("SIP/ccm-00000119", ""APPEL ENTRANT"") in new stack
        -- Executing [11111@test:2] Answer("SIP/ccm-00000119", "") in new stack
        -- Executing [11111@test:3] Transfer("SIP/ccm-00000119", "SIP/100002") in new stack
        -- Auto fallthrough, channel 'SIP/ccm-00000119' status is 'UNKNOWN'
        -- Incoming call: Got SIP response 500 "Internal Server Error" back from X.X.X.200

  6. #6
    Membre Junior
    Date d'inscription
    octobre 2011
    Messages
    6
    Downloads
    0
    Uploads
    0
    OK j'ai du mieux :
    Code:
    [test]
    exten => _X.,1,Noop("APPEL ENTRANT")
    exten => _X.,n,Answer
    exten => _X.,n,Transfer(SIP/10002)
    exten => _X.,n,Wait(2)
    exten => _X.,n,Noop(${TRANSFERSTATUS})
    En ajoutant un wait(2) puis l'information du transfert, je pense qu'Asterisk ne jette pas l'appel. Le Call Manager a donc le temps d'acheminer l'appel.

    Mon soucis venait de là je crois :
    Quand la fonction transfert est lancée, l'Asterisk attends le 200 tout de suite, et il ne l'attends pas assez longtemps avant de jeter l'appel.
    Si le call manager n'est pas assez rapide, congestion.

  7. #7
    Membre Association
    Date d'inscription
    septembre 2010
    Messages
    1 236
    Downloads
    0
    Uploads
    0
    Le transfert me permet de libérer l'appel et le call manager gère l'aboutement.
    Oui, mas ça ne fonctionne pas pour le moment. La machine n'arrive pas a gèrer l'ensemble d'appels vers IVR ? Est ce que tu as une problème de charge ?

  8. #8
    Membre Junior
    Date d'inscription
    octobre 2011
    Messages
    6
    Downloads
    0
    Uploads
    0
    Non, pas de problème de charge pour le moment, que mes appels de tests tournent.

    J'ai le fonctionnement souhaité en ajoutant le wait().

    Mes cas ou l'appel se fait jeter, le transfer a bien marché et toutes les lignes du poste sont occupé (Call Flow a traiter dans le CCM).

    Ce post semble résolu. Merci de votre aide à tous.

    Peut être à noter : Lors d'un Transfer(), placer un wait() derrière... mais je trouve ça bizarre.

  9. #9
    Membre Association
    Date d'inscription
    septembre 2010
    Messages
    1 236
    Downloads
    0
    Uploads
    0
    Ajouter le wait après le transfert est étrange, asterisk attend 200 assez de temps crois moi. Mais peu importe si ça fonctionne pour toi.

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •