PDA

Voir la version complète : Callback asterisk avec freephonie



bobo023
22/04/2011, 19h01
Bonjour,

Je souhaite faire un callback en utilisant le service freephonie. Cela fait moins d'une semaine que j'utilise asterisk 1.6 (sous fedora) donc je ne suis pas expert de la configuration asterisk. Je veux faire ceci (en utilisant freephonie):

1- appeler de mon portable chez moi
2- asterisk me rappelle (par le compte sip de freephonie) et me demande un code que je lui donne
3- si le code est bon, asterisk me demande le numero que je veux composer
4- asterisk me met en contatce avec la personne souhaité et on peut discuter
5- je souhaite que cette procédure soit vrai pour mon numéro de portable uniquement, les autres numéros ne doivent pas être rappelés automatiquement

J'ai trouvé un code à tester sur le cite http://guides.ovh.com/AsteriskCallBack. Voici mon code et les erreurs qui apparaissent:

Dans "sudo gedit /etc/asterisk/sip.conf":

[general]
port=5060
bindaddr=0.0.0.0
tos=0x18
nat=yes
externip= mon_IP_public
disallow=all
allow=ulaw
allow = alaw


register => 09******:mot_de_passe@freephonie.net

[freephonie]
type = peer
insecure = port,invite
host = freephonie.net
username = 09*******
context = incoming_calls
fromuser = 09********
secret = mot_de_passe
nat = yes
fromdomain = freephonie.net
disallow = all
allow = alaw,ulaw


[1001]
type=friend
host=dynamic
context=phones
secret=bolivar

[1002]
type=friend
host=dynamic
context=phones
secret=bolivar


Dans "sudo gedit /etc/asterisk/extensions.conf":


[general]
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=no
priorityjumping=no


[globals]
CONSOLE=Console/dsp
IAXINFO=guest
TRUNK=Zap/g2
TRUNKMSD=1


[default]
exten => s,1,Verbose(1|Unrouted call handler)
exten => s,n,Answer()
exten => s,n,Wait(1)
exten => s,n,Playback(tt-weasels)
exten => s,n,Hangup()

[incoming_calls]
exten => s,1,NoOp(Incoming call form callback)
exten => s,2,Goto(init-callback,100,1)


[outgoing_calls]
exten => _X.,1,NoOp()
exten => _X.,n,Dial(SIP/freephonie/${EXTEN})


[internal]
exten => 1000,1,Verbose(1|Extension 1000)
exten => 1000,n,Dial(SIP/1000,30)
exten => 1000,n,Hangup()
exten => 500,1,Verbose(1|Echo test application)
exten => 500,n,Echo()
exten => 500,n,Hangup()

[phones]
include => internal
include => outgoing_calls

[init-callback]
exten => 100,1,System(echo je vais apeller ${CALLERID(num)})
exten => 100,2,Congestion
exten => 100,3,Hangup
exten => h,1,System(echo je rapelle ${CALLERID(num)})
exten => h,2,System(echo Channel: SIP/${CALLERID(num)}@freephonie > /tmp/${CALLERID(num)})
exten => h,3,System(echo Context: callback-ctx >> /tmp/${CALLERID(num)})
exten => h,4,System(echo Extension: s >> /tmp/${CALLERID(num)})
exten => h,5,System(echo Priority: 1 >> /tmp/${CALLERID(num)})
exten => h,6,System(echo MaxRetries: 5 >> /tmp/${CALLERID(num)})
exten => h,7,System(echo RetryTime: ${CALLERID(num)} >> /tmp/${CALLERID(num)})
exten => h,8,System(echo WaitTime: 45 >> /tmp/${CALLERID(num)})
exten => h,9,System(echo sleep 5 > /tmp/${CALLERID(num)}.2)
exten => h,10,System(echo cp /tmp/${CALLERID(num)} /var/spool/asterisk/outgoing/ >> /tmp/${CALLERID(num)}.2)
exten => h,11,System(chmod 775 /tmp/${CALLERID(num)}.2)
exten => h,12,System(/tmp/${CALLERID(num)}.2)
exten => h,13,Hangup()

[callback-ctx]
exten => s,1,Background(silence/2)
exten => s,2,SIPDtmfMode(inband))
exten => s,3,Authenticate(1234)
exten => s,4,DISA(no-password|callback-out)

[callback-out]
exten => _X.,1,Dial(SIP/freephonie/${EXTEN},240,T)


Les erreurs que je vois sur mon serveur:

CLI> [Apr 22 15:10:52] WARNING[9041]: chan_sip.c:18348 handle_response_register: Got 423 Interval too brief for service 09********@freephonie.net, minimum is 1800 seconds
je vais apeller 0661837311
je rapelle 0661837311
[Apr 22 15:11:24] WARNING[9079]: file.c:650 ast_openstream_full: File silence/2 does not exist in any format
[Apr 22 15:11:24] WARNING[9079]: file.c:956 ast_streamfile: Unable to open silence/2 (format 0x8 (alaw)): No such file or directory
[Apr 22 15:11:24] WARNING[9079]: pbx.c:8926 pbx_builtin_background: ast_streamfile failed on SIP/freephonie-00000001 for silence/2
[Apr 22 15:11:24] WARNING[9079]: chan_sip.c:25767 sip_dtmfmode: I don't know about this dtmf mode: inband)
[Apr 22 15:11:24] WARNING[9079]: file.c:650 ast_openstream_full: File agent-pass does not exist in any format
[Apr 22 15:11:24] WARNING[9079]: file.c:956 ast_streamfile: Unable to open agent-pass (format 0x8 (alaw)): No such file or directory
[Apr 22 15:11:24] WARNING[9079]: file.c:650 ast_openstream_full: File vm-goodbye does not exist in any format
[Apr 22 15:11:24] WARNING[9079]: file.c:956 ast_streamfile: Unable to open vm-goodbye (format 0x8 (alaw)): No such file or directory
[Apr 22 15:11:24] NOTICE[9079]: pbx_spool.c:349 attempt_thread: Call completed to SIP/06********@freephonie

Je n'ai rien ajouté de plus, tout est écrit ci dessus.

Quand je bip mon téléphone fixe avec mon portable, asterisk me rappelle mais la communication coupe dès que je décroche et le message d'erreur s'affiche. De plus, cette procédure est vrai quelque soi le numéro qui appelle mon fixe alors que je veux que ça marche uniquement pour mon numéro de portable.

Si vous avez la solution à mon problème répondez moi s'il vous plait?? Si vous avez un code qui marche, je suis preneur?? S'il y a un tutoriel (assez détaillé) qui permet de faire le callback je prends??

Soyez précis dans vos réponses s'il vous plait, car je suis un novis sur asterisk il faut donc être le plus précis possible. Merci

therebel23
23/04/2011, 09h03
Bonjour,
ton problème, comme indiqué dans le log, vient de la ligne :

exten => s,1,Background(silence/2)

Le fichier silence/2 n'existe pas au niveau de ton asterisk. Utilise un autre fichier son présent dans le répertoire : /usr/share/asterisk/sounds

therebel23
23/04/2011, 09h05
Et le 2eme problème, le plus grave vient de la ligne :

exten => s,2,SIPDtmfMode(inband))

Mais je n'ai jamais testé cette fonction, je ne peux pas t'aider, par contre voici la doc :

http://www.voip-info.org/wiki/view/Asterisk+cmd+SIPdtmfmode

Reaper
23/04/2011, 11h21
son prob N1 et que son register est refusé par free, il faut mettre defaultexpiry a 1800.

bobo023
23/04/2011, 16h34
Bonjour,

Je vous remercie tous pour vos réponses rapides. Voici les modifications que j'ai fait:

1- Dans extensions.conf:

_ J'ai supprimeé la ligne "exten => s,1,Background(silence/2)" car le répertoire /usr/share/asterisk/sounds est vide. cela a donc annulé l'erreur du Background.

_ J'ai supprimé la ligne "exten => s,n,Playback(tt-weasels)" pour les même raisons qu'au (1) j'avais un message d'erreur "fichier non existant"

2-Dans sip.conf j'ai ajouté defaultexpiry=1800.

Les messages d'erreurs ont diminué mais il me reste encore ce ci:
Asterisk me rappel bien et quand je décroche l'appelle coupe après 1 second :( puis je vois le message d'erreur suivant:

*CLI> je vais apeller 06*****
je rapelle 06******
[Apr 23 16:19:49] WARNING[2473]: pbx.c:1356 pbx_exec: The application delimiter is now the comma, not the pipe. Did you forget to convert your dialplan? (Verbose(|Unrouted call handler))
|Unrouted call handler
[Apr 23 16:19:50] NOTICE[2473]: pbx_spool.c:349 attempt_thread: Call completed to SIP/06******@freephonie

Je ne trouve pas la solution à ce problème, quelqu'un a-t-il une réponse?? Merci

Je mets toute ma "nouvelle" configuration ci dessous pour plus de détails:

Dans " sudo gedit /etc/asterisk/sip.conf ":

[general]
port=5060
bindaddr=0.0.0.0
tos=0x18
nat=yes
externip= mon_ip_public
disallow=all
allow=ulaw
allow = alaw
defaultexpiry=1800


register => 09******:*********@freephonie.net

[freephonie]
type = peer
insecure = port,invite
host = freephonie.net
username = 09*******
context = incoming_calls
fromuser = 09*******
secret = ********
nat = yes
fromdomain = freephonie.net
disallow = all
allow = alaw,ulaw


[1001]
type=friend
host=dynamic
context=phones
secret=bolivar

[1002]
type=friend
host=dynamic
context=phones
secret=bolivar


dans " sudo gedit /etc/asterisk/extensions.conf ":

[general]
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=no
priorityjumping=no

[globals]
CONSOLE=Console/dsp
IAXINFO=guest
TRUNK=Zap/g2
TRUNKMSD=1

[default]
exten => s,1,Verbose(|Unrouted call handler)
exten => s,n,Answer()
exten => s,n,Wait(1)
;exten => s,n,Playback(tt-weasels)
exten => s,n,Hangup()

[incoming_calls]
exten => s,1,NoOp(Incoming call form callback)
exten => s,2,Goto(init-callback,100,1)


[internal]
exten => 1000,1,Verbose(1|Extension 1000)
exten => 1000,n,Dial(SIP/1000,30)
exten => 1000,n,Hangup()
exten => 500,1,Verbose(1|Echo test application)
exten => 500,n,Echo()
exten => 500,n,Hangup()

[phones]
include => internal
include => outgoing_calls

[init-callback]
exten => 100,1,System(echo je vais apeller ${CALLERID(num)})
exten => 100,2,Congestion
exten => 100,3,Hangup
exten => h,1,System(echo je rapelle ${CALLERID(num)})
exten => h,2,System(echo Channel: SIP/${CALLERID(num)}@freephonie > /tmp/${CALLERID(num)})
exten => h,3,System(echo Context: callback-ctx >> /tmp/${CALLERID(num)})
exten => h,4,System(echo Extension: s >> /tmp/${CALLERID(num)})
exten => h,5,System(echo Priority: 1 >> /tmp/${CALLERID(num)})
exten => h,6,System(echo MaxRetries: 5 >> /tmp/${CALLERID(num)})
exten => h,7,System(echo RetryTime: ${CALLERID(num)} >> /tmp/${CALLERID(num)})
exten => h,8,System(echo WaitTime: 45 >> /tmp/${CALLERID(num)})
exten => h,9,System(echo sleep 5 > /tmp/${CALLERID(num)}.2)
exten => h,10,System(echo cp /tmp/${CALLERID(num)} /var/spool/asterisk/outgoing/ >> /tmp/${CALLERID(num)}.2)
exten => h,11,System(chmod 775 /tmp/${CALLERID(num)}.2)
exten => h,12,System(/tmp/${CALLERID(num)}.2)
exten => h,13,Hangup()

[outgoing_calls] ; Cette partie gere les appels sortants
exten => _X.,1,Dial(SIP/${EXTEN}@freephonie) ; Sur cette ligne allons appeler en passant par la section [freephonie] du fichier sip.conf

[callback-ctx]
;exten => s,1,Background(silence/2)
exten => s,2,SIPDtmfMode(inband))
exten => s,3,Authenticate(1234)
exten => s,4,DISA(no-password|callback-out)

[callback-out]
exten => _X.,1,Dial(SIP/freephonie/${EXTEN},240,T)

Reaper
23/04/2011, 21h40
C'est ecrit en clair, les applications sont separes par comma au lieux de pipe.
Vous êtes entrain de tomber dans le context default.

Vos traces sont insuffisantes, faites un trace complete de l'appel et pas seulement les erreurs.

bobo023
23/04/2011, 23h05
C'est ecrit en clair, les applications sont separes par comma au lieux de pipe.
Vous êtes entrain de tomber dans le context default.

Vos traces sont insuffisantes, faites un trace complete de l'appel et pas seulement les erreurs.


Bonsoir,

Merci pour ta réponse. Je ne sais pas trop sur quel ligne je dois remplacer comma par pipe?? Je ne comprends pas non plus pourquoi je suis entrain de tomber dans le contexte "default" au lieu d'exécuter le DISA() dans le contexte "callback-ctx"??

Voici un détail du déroulement de l'appelle:

Connected to Asterisk 1.6.2.17.2 currently running on localhost (pid = 2198)
Verbosity is at least 6
== Using SIP RTP CoS mark 5
-- Executing [s@incoming_calls:1] NoOp("SIP/freephonie-00000000", "Incoming call form callback") in new stack
-- Executing [s@incoming_calls:2] Goto("SIP/freephonie-00000000", "init-callback,100,1") in new stack
-- Goto (init-callback,100,1)
-- Executing [100@init-callback:1] System("SIP/freephonie-00000000", "echo je vais apeller 0661837311") in new stack
-- Executing [100@init-callback:2] Congestion("SIP/freephonie-00000000", "") in new stack
== Spawn extension (init-callback, 100, 2) exited non-zero on 'SIP/freephonie-00000000'
-- Executing [h@init-callback:1] System("SIP/freephonie-00000000", "echo je rapelle 0661837311") in new stack
-- Executing [h@init-callback:2] System("SIP/freephonie-00000000", "echo Channel: SIP/0661837311@freephonie > /tmp/0661837311") in new stack
-- Executing [h@init-callback:3] System("SIP/freephonie-00000000", "echo Context: callback-ctx >> /tmp/0661837311") in new stack
-- Executing [h@init-callback:4] System("SIP/freephonie-00000000", "echo Extension: s >> /tmp/0661837311") in new stack
-- Executing [h@init-callback:5] System("SIP/freephonie-00000000", "echo Priority: 1 >> /tmp/0661837311") in new stack
-- Executing [h@init-callback:6] System("SIP/freephonie-00000000", "echo MaxRetries: 5 >> /tmp/0661837311") in new stack
-- Executing [h@init-callback:7] System("SIP/freephonie-00000000", "echo RetryTime: 0661837311 >> /tmp/0661837311") in new stack
-- Executing [h@init-callback:8] System("SIP/freephonie-00000000", "echo WaitTime: 45 >> /tmp/0661837311") in new stack
-- Executing [h@init-callback:9] System("SIP/freephonie-00000000", "echo sleep 5 > /tmp/0661837311.2") in new stack
-- Executing [h@init-callback:10] System("SIP/freephonie-00000000", "echo cp /tmp/0661837311 /var/spool/asterisk/outgoing/ >> /tmp/0661837311.2") in new stack
-- Executing [h@init-callback:11] System("SIP/freephonie-00000000", "chmod 775 /tmp/0661837311.2") in new stack
-- Executing [h@init-callback:12] System("SIP/freephonie-00000000", "/tmp/0661837311.2") in new stack
-- Executing [h@init-callback:13] Hangup("SIP/freephonie-00000000", "") in new stack
== Spawn extension (init-callback, h, 13) exited non-zero on 'SIP/freephonie-00000000'
-- Attempting call on SIP/0661837311@freephonie for s@callback-ctx:1 (Retry 1)
== Using SIP RTP CoS mark 5
> Channel SIP/freephonie-00000001 was answered.
== Starting SIP/freephonie-00000001 at callback-ctx,s,1 failed so falling back to exten 's'
== Starting SIP/freephonie-00000001 at callback-ctx,s,1 still failed so falling back to context 'default'
-- Executing [s@default:1] Verbose("SIP/freephonie-00000001", "|Unrouted call handler") in new stack
[Apr 23 22:52:10] WARNING[2330]: pbx.c:1356 pbx_exec: The application delimiter is now the comma, not the pipe. Did you forget to convert your dialplan? (Verbose(|Unrouted call handler))
|Unrouted call handler
-- Executing [s@default:2] Answer("SIP/freephonie-00000001", "") in new stack
-- Executing [s@default:3] Wait("SIP/freephonie-00000001", "1") in new stack
-- Executing [s@default:4] Hangup("SIP/freephonie-00000001", "") in new stack
== Spawn extension (default, s, 4) exited non-zero on 'SIP/freephonie-00000001'
[Apr 23 22:52:11] NOTICE[2330]: pbx_spool.c:349 attempt_thread: Call completed to SIP/0661837311@freephonie

Reaper
24/04/2011, 00h30
Votre plan de numérotation est mauvais, lises ces lignes avec soin:


- Attempting call on SIP/0661837311@freephonie for s@callback-ctx:1 (Retry 1)
== Using SIP RTP CoS mark 5
> Channel SIP/freephonie-00000001 was answered.
== Starting SIP/freephonie-00000001 at callback-ctx,s,1 failed so falling back to exten 's'
== Starting SIP/freephonie-00000001 at callback-ctx,s,1 still failed so falling back to context 'default'
-- Executing [s@default:1] Verbose("SIP/freephonie-00000001", "|Unrouted call handler") in new stack
[Apr 23 22:52:10] WARNING[2330]: pbx.c:1356 pbx_exec: The application delimiter is now the comma, not the pipe. Did you forget to convert your dialplan? (Verbose(|Unrouted call handler))
|Unrouted call handler
-- Executing [s@default:2] Answer("SIP/freephonie-00000001", "") in new stack
-- Executing [s@default:3] Wait("SIP/freephonie-00000001", "1") in new stack
-- Executing [s@default:4] Hangup("SIP/freephonie-00000001", "") in new stack
== Spawn extension (default, s, 4) exited non-zero on 'SIP/freephonie-00000001'
[Apr 23 22:52:11] NOTICE[2330]: pbx_spool.c:349 attempt_thread: Call completed to SIP/0661837311@freephonie

bibi
24/04/2011, 03h49
renvoi ns exactement ton plan de numerotation du contexe "callback-ctx". car asterisk cherche reelement apres que tes decrocher lappel a se connecter a la premiere priorite du contexe "callback-ctx" mais ny parvient pas, avant daller dans le contexe "default". donc je me demande bien si en suprimant lappli background tu a fait passer lappli suivante (sipdtmfmode) de la priorite 2 a la priorite 1

bibi
24/04/2011, 04h08
bref je me demande si tu a bien changer lordre des priorite lorsque ta suprimer lappli background. de plus tu utilise la version 1.6 de asterisk donc tu doit changer tout tes pipe par des commas en debutan par le pipe de lappli disa, si non cela ne fonctionera pas.

bobo023
25/04/2011, 10h22
bref je me demande si tu a bien changer lordre des priorite lorsque ta suprimer lappli background. de plus tu utilise la version 1.6 de asterisk donc tu doit changer tout tes pipe par des commas en debutan par le pipe de lappli disa, si non cela ne fonctionera pas.


Bonjour,

Ça marche!!!! Merci pour ces conseils, il s'agissait bien de renuméroter l'ordre des priorités après avoir effacé certaines lignes. De plus, j'ai remplacé les pipes par des commas et ça a marché.

Un grand MERCI à tout les gens qui m'ont aidé à faire mon callback!! Je mets ci dessous tout mon code pour les gens qui sont à la recherche d'un code qui marche.

Dans "sudo gedit /etc/asterisk/sip.conf" :


[general]
port=5060
bindaddr=0.0.0.0
tos=0x18
nat=yes
externip= IP_public
disallow=all
allow=ulaw
allow = alaw
defaultexpiry=1800


register => 09*******:mot_de_passe@freephonie.net

[freephonie]
type = peer
insecure = port,invite
host = freephonie.net
username = 09*******
context = incoming_calls
fromuser = 09********
secret = mot_de_passe
nat = yes
fromdomain = freephonie.net
disallow = all
allow = alaw,ulaw


[1001]
type=friend
host=dynamic
context=phones
secret=*****

[1002]
type=friend
host=dynamic
context=phones
secret=*****


Dans "sudo gedit /etc/asterisk/extensions.conf" :

[general]
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=no
priorityjumping=no

[globals]
CONSOLE=Console/dsp
IAXINFO=guest
TRUNK=Zap/g2
TRUNKMSD=1

[default]
exten => s,1,Verbose(1,Unrouted call handler) ;
exten => s,n,Answer()
exten => s,n,Wait(1)
;exten => s,n,Playback(tt-weasels)
exten => s,n,Hangup()

[incoming_calls]
exten => s,1,NoOp(Incoming call form callback)
exten => s,2,GotoIf($["${CALLERID(num)}" = "06*****"]?init-callback,100,1) ; on choisie le (ou les) numéros que l'on autorise pour le callback (06*****)


[internal]
exten => 1000,1,Verbose(1|Extension 1000)
exten => 1000,n,Dial(SIP/1000,30)
exten => 1000,n,Hangup()
exten => 500,1,Verbose(1|Echo test application)
exten => 500,n,Echo()
exten => 500,n,Hangup()

[phones]
include => internal
include => outgoing_calls

[init-callback]
exten => 100,1,System(echo je vais apeller ${CALLERID(num)})
exten => 100,2,Congestion
exten => 100,3,Hangup
exten => h,1,System(echo je rapelle ${CALLERID(num)})
exten => h,2,System(echo Channel: SIP/${CALLERID(num)}@freephonie > /tmp/${CALLERID(num)})
exten => h,3,System(echo Context: callback-ctx >> /tmp/${CALLERID(num)})
exten => h,4,System(echo Extension: s >> /tmp/${CALLERID(num)})
exten => h,5,System(echo Priority: 1 >> /tmp/${CALLERID(num)})
exten => h,6,System(echo MaxRetries: 5 >> /tmp/${CALLERID(num)})
exten => h,7,System(echo RetryTime: ${CALLERID(num)} >> /tmp/${CALLERID(num)})
exten => h,8,System(echo WaitTime: 45 >> /tmp/${CALLERID(num)})
exten => h,9,System(echo sleep 5 > /tmp/${CALLERID(num)}.2)
exten => h,10,System(echo cp /tmp/${CALLERID(num)} /var/spool/asterisk/outgoing/ >> /tmp/${CALLERID(num)}.2)
exten => h,11,System(chmod 775 /tmp/${CALLERID(num)}.2)
exten => h,12,System(/tmp/${CALLERID(num)}.2)
exten => h,13,Hangup()

[outgoing_calls] ; Cette partie gere les appels sortants
exten => _X.,1,Dial(SIP/${EXTEN}@freephonie) ; Sur cette ligne allons appeler en passant par la section [freephonie] du fichier sip.conf

[callback-ctx]
;exten => s,1,Background(silence/2)
;exten => s,1,SIPDtmfMode(inband))
;exten => s,1,Authenticate(1234)
exten => s,1,DISA(no-password,callback-out) ;|

[callback-out]
exten => _X.,1,Dial(SIP/freephonie/${EXTEN},240,T)

bibi
25/04/2011, 16h50
Merci également pour ton code il me servira assurément.
J e voudrais te demander une faveur si cela ne te géne pas, je vois que ta enlever toute la partie authentification a partir du code d'identification 1234 dans le contexte [callback-ctx] en y laissant seulement l'appli DISA(). j'aimerai que tu essaye un peu ceci si cela marche, comme tu n'a pas le fichier son "silence" pour l'appli Background().

[callback-ctx]

exten => s,1,waitexten()
exten => s,2,SIPDtmfMode(inband)
exten => s,3,Authenticate(1234)
exten => s,4,DISA(no-password,callback-out)


En fait je voudrais voir si l'appli SIPDtmfMode(inban) fonctionera.

Je voudrais aussi savoir si lorsque tu décroche l'appel effectuer par asterisk ton crédit de communication est débiter immédiatement ou alors celui ci est débite seulement quand ton correspondant décroche ton appel.

Merci

bobo023
26/04/2011, 17h53
Merci également pour ton code il me servira assurément.
J e voudrais te demander une faveur si cela ne te géne pas, je vois que ta enlever toute la partie authentification a partir du code d'identification 1234 dans le contexte [callback-ctx] en y laissant seulement l'appli DISA(). j'aimerai que tu essaye un peu ceci si cela marche, comme tu n'a pas le fichier son "silence" pour l'appli Background().

[callback-ctx]

exten => s,1,waitexten()
exten => s,2,SIPDtmfMode(inband)
exten => s,3,Authenticate(1234)
exten => s,4,DISA(no-password,callback-out)


En fait je voudrais voir si l'appli SIPDtmfMode(inban) fonctionera.

Je voudrais aussi savoir si lorsque tu décroche l'appel effectuer par asterisk ton crédit de communication est débiter immédiatement ou alors celui ci est débite seulement quand ton correspondant décroche ton appel.

Merci

Salut,

j'ai testé ta proposition et ça marche bien sauf pour le "Authenticate(1234)" qui ne passe pas asterisk me dit qu'il n'existe pas un tel fichier.... donc qd je retire le "Authenticate(1234)" ça fonctionne bien. Il doit y avoir un moyen de régler le problème du "Authenticate(1234)" je crois.
Sinon pour la facturation, tu ne paies rien en ce qui concerne ton portable et au niveau de free la facturation commence dès que asterisk te rappelle (au moment ou tu décroche).

bibi
28/04/2011, 01h39
ok merci, j'ai oublier que tavais pas de fichier sonore. comme tu la dit, enléve l'appli authenticate() et reécrit l'appli disa() comme ceci:
exten => s,3,DISA(1234,callback-out)
dont qd asterisk te rappelera tu entrera le code de securité 1234 et tu terminera par diése #, avant de composer le numero de ton corespondant.
teste cela un peu sil te plai.

bobo023
28/04/2011, 08h04
ok merci, j'ai oublier que tavais pas de fichier sonore. comme tu la dit, enléve l'appli authenticate() et reécrit l'appli disa() comme ceci:
exten => s,3,DISA(1234,callback-out)
dont qd asterisk te rappelera tu entrera le code de securité 1234 et tu terminera par diése #, avant de composer le numero de ton corespondant.
teste cela un peu sil te plai.


Salut,

Je vais tester ça tout à l'heure, en attendant j'ai mis un autre message sur le forum hier soir car je souhaite faire fonctionner un spa3102 branché directement sur ma freebox. Le spa3102 étant contrôlé par mon serveur asterisk. Peux tu regarder le message que j'ai posté sur le forum à ce sujet et voir si tu n'a pas une solution à mon problème. Merci

bibi
29/04/2011, 15h54
ok, je jetrais un coup d'oeil, c'est vrai tou de même que jai jamais utilisé un spa:petrus75:

bobo023
01/05/2011, 08h44
ok merci, j'ai oublier que tavais pas de fichier sonore. comme tu la dit, enléve l'appli authenticate() et reécrit l'appli disa() comme ceci:
exten => s,3,DISA(1234,callback-out)
dont qd asterisk te rappelera tu entrera le code de securité 1234 et tu terminera par diése #, avant de composer le numero de ton corespondant.
teste cela un peu sil te plai.

Bonjour,

J'ai testé et ça marche bien.

bibi
01/05/2011, 15h50
OK, merci

bobo023
13/05/2011, 13h53
Bonjour à tous,

Je reviens vers vous car je rencontre un problème avec mon callback. En effet, je pensais qu'il fonctionnait correctement jusqu'au moment ou je me suis rendu compte qu'en fait c'était mon portable et pas mon fixe qui payait la communication!

Mon problème est le suivant: asterisk me rappelle bien pour le callback et lorsque je décroche j'ai bien un dial tone qui s'enclanche par la foctioon DISA " exten => s,1,DISA(no-password,callback-out) ". Jusque là tout va bien mais lorsque je compose un numéro, le dial tone ne disparait pas ça fait comme si je n'avais rien composé et au bout d'un moment j'entends une tonalité qui est du type "occupé" un peu comme qd on décroche son fixe et qu'on ne compose rien pendant un moment la tonalité "change".
La ou je me suis fait avoir c'est que je pensais qu'il fallait appuyer sur la touche "appelle" de mon portable pour que le DISA appelle la ou je veux mais c'est mon protable et pas le DISA qui appelle ds ce cas là!

Je n'arrive pas à régler ce problème. Quelqu'un a t il déjà rencontré ce genre de problème?? Qui a une solution à ça??

J'ai déjà mis l'ensemble de mon code dans mes réponses précédentes. Merci

bobo023
13/05/2011, 16h28
Bonjour,

C'est bon j'ai résolu le problème, c'était juste une erreur de syntaxe sur le "SIPDtmfMode".
Par contre j'ai un nouveau soucis, asterisk me rappelle et je peux passer des appelles en en "interne" ie je peux appeller les softphone qui sont connectés à asterisk depuis mon portable. Par contre je ne peux pas passer d'appelle sortant, asterisk me dit que freephonie est déjà occupé....

Voici ce que je vois:


== Spawn extension (init-callback, h, 13) exited non-zero on 'SIP/freephonie-00000000'
-- Attempting call on SIP/0661837311@freephonie for s@callback-ctx:1 (Retry 1)
== Using SIP RTP CoS mark 5
-- Executing [s@callback-ctx:1] SIPDtmfMode("SIP/freephonie-00000001", "inband") in new stack
-- Executing [s@callback-ctx:2] DISA("SIP/freephonie-00000001", "no-password,phones") in new stack
-- Message check requested for mailbox /folder INBOX but voicemail not loaded.
-- Executing [0648143686@phones:1] Dial("SIP/freephonie-00000001", "SIP/0648143686@freephonie") in new stack
== Using SIP RTP CoS mark 5
-- Called 0648143686@freephonie
[May 13 16:28:05] WARNING[2498]: chan_sip.c:18030 handle_response_invite: Received response: "Forbidden" from '"asterisk" <sip:0951106231@freephonie.net>;tag=as3ba4e998'
-- SIP/freephonie-00000002 is circuit-busy
== Everyone is busy/congested at this time (1:0/1/0)
-- Auto fallthrough, channel 'SIP/freephonie-00000001' status is 'CONGESTION'
[May 13 16:28:10] NOTICE[2536]: pbx_spool.c:349 attempt_thread: Call completed to SIP/0661837311@freephonie


Est-il donc impossible de faire le callback avec appelle sortant sur freephonie?? Faut-il nécessairement avoir une deuxième ligne (un deuxième serveur sip ou autre)??

cyrflo
14/05/2011, 08h54
A mon avis il es normal que ton asterisk ne fonctionne pas sur ton freephonie étant donner qui l' utilise déjà pour te rappelé sur ton portable ( a moins que ont peut utilisé freephonie plusieurs appel sortant simultané ) , sinon il faut donc une deuxième ligne sip pour pouvoir appelé vers l’extérieur genre sip du groupe BETAMAX sont les moins chère voila en espérant t'avoir éclairci le chemin moi aussi je cherche une super solution callback si tu peut m'aider.

Pour moi je cherche une solution simple a exploiter si sa marche je passe chez Prixtel avec leur forfait a 1,50 € par moi sans engagement et la c'est le tel gratis riree la solution envisagé c'est j' appel asterisk avec mon forfait a 1,50 €/mois Asterisk reconnais mon numéro coupe l'appel et me rappel par le freephonie et me donne la tonalité . Ma question et la suivante il peut me donner la tonalité de freephonie encore une fois ? ou suis obligé de passé par un second SIP BETAMAX par exemple ? Merci de vos réponse

bobo023
14/05/2011, 10h30
A mon avis il es normal que ton asterisk ne fonctionne pas sur ton freephonie étant donner qui l' utilise déjà pour te rappelé sur ton portable ( a moins que ont peut utilisé freephonie plusieurs appel sortant simultané ) , sinon il faut donc une deuxième ligne sip pour pouvoir appelé vers l’extérieur genre sip du groupe BETAMAX sont les moins chère voila en espérant t'avoir éclairci le chemin moi aussi je cherche une super solution callback si tu peut m'aider.

Pour moi je cherche une solution simple a exploiter si sa marche je passe chez Prixtel avec leur forfait a 1,50 € par moi sans engagement et la c'est le tel gratis riree la solution envisagé c'est j' appel asterisk avec mon forfait a 1,50 €/mois Asterisk reconnais mon numéro coupe l'appel et me rappel par le freephonie et me donne la tonalité . Ma question et la suivante il peut me donner la tonalité de freephonie encore une fois ? ou suis obligé de passé par un second SIP BETAMAX par exemple ? Merci de vos réponse

Merci pour ta réponse,

Je pense que quand asterisk te rappelle par la freephonie, tu ne peux pas repasser d'appelle par la freephonie sinon tu auras le même message que moi "freephonie déjà occupé" à moins que tu n'arrives a faire des appelles simultané ou alors alors à faire un double appelle puis une mise en conférence d'ou le sujet que j'ai créé sur le forum hier mais je n'ai pas encore eu bcp de retour (tu peux jeter un coup d'oeil si tu as une iddée.
Par contre il y a un truc qui marche qe j'ai tenté c'est asterisk te rappelle par la freephonie et tu passes un appelle par une ligne PSTN ie par un spa3102 connecté sur la freebox et à asterisk et là ça marche.

Sinon peux tu me donner le site pour ton forfait à 1.50 stp ??? Ce forfait permet d'appeler les fixe gratuitement pour 1.50?? Si c'est le cas alors tu peux appeler ton fixe, asterisk reconnait ton numero et te laisse passer un appelle via la freephonie (ou le spa3102) en grox portable->asterisk->freephonie (ou spa3102)-> appelle sortant. J'imagine que cette procédure peut fonctionner??? Qui a déjà essayé ça?? (J'ai vu sur un site que c'est possible mais après il faut le configurer)

cyrflo
14/05/2011, 22h10
Merci pour ta réponse,

Je pense que quand asterisk te rappelle par la freephonie, tu ne peux pas repasser d'appelle par la freephonie sinon tu auras le même message que moi "freephonie déjà occupé" à moins que tu n'arrives a faire des appelles simultané ou alors alors à faire un double appelle puis une mise en conférence d'ou le sujet que j'ai créé sur le forum hier mais je n'ai pas encore eu bcp de retour (tu peux jeter un coup d'oeil si tu as une iddée.
Par contre il y a un truc qui marche qe j'ai tenté c'est asterisk te rappelle par la freephonie et tu passes un appelle par une ligne PSTN ie par un spa3102 connecté sur la freebox et à asterisk et là ça marche.

Sinon peux tu me donner le site pour ton forfait à 1.50 stp ??? Ce forfait permet d'appeler les fixe gratuitement pour 1.50?? Si c'est le cas alors tu peux appeler ton fixe, asterisk reconnait ton numero et te laisse passer un appelle via la freephonie (ou le spa3102) en grox portable->asterisk->freephonie (ou spa3102)-> appelle sortant. J'imagine que cette procédure peut fonctionner??? Qui a déjà essayé ça?? (J'ai vu sur un site que c'est possible mais après il faut le configurer)

dis moi tu a skype ? comme sa ont pourra discuter a +

bobo023
17/05/2011, 20h25
dis moi tu a skype ? comme sa ont pourra discuter a +

Bonsoir,

Oui j'ai skype mais on peut discuter sur nos adresses mails qui sont attribués par le forum.

cedricscha
18/05/2011, 06h28
Pour faire profiter tout le monde, et permettre à d'autre confronter au même problème, de trouver la solution, il serait plus sympa de faire cela sur le forum directement.

therebel23
18/05/2011, 07h32
Juste pour info, j'ai fait des tests avec un ami sur le SPA3102. Le souci c'est que le SPA ne gère pas les doubles appels (entrants/sortants) par le PSTN (en entrant, on a bien le bip du double appel, mais pas moyen de prendre la ligne (ou alors j'ai mal regardé au niveau de la conf)

Donc oui la solution de faire passer en même temps un appel sortant par le SIP freephonie et un appel sortant par le SPA vers la freebox est possible et fonctionne.

Par contre, en imaginant que tu veuilles que ton asterisk rappelle ton portable, et appelle ensuite le portable de ton choix, alors tu auras forcément un des 2 appels qui sera payant car il passera par le SIP..

bobo023
18/05/2011, 21h32
Juste pour info, j'ai fait des tests avec un ami sur le SPA3102. Le souci c'est que le SPA ne gère pas les doubles appels (entrants/sortants) par le PSTN (en entrant, on a bien le bip du double appel, mais pas moyen de prendre la ligne (ou alors j'ai mal regardé au niveau de la conf)



Salut,

Puisque tu as quasiment réussi à faire un test de double appelle sur le spa, pourrais tu nous faire profiter de la procédure (code ou configuration) que tu as utilisé? Comment as tu réussi à reproduire l'effet de la touche "R" du téléphone?? (Le problème que tu rencontre vient peut être d'une erreur de conf comme tu le dis toi même)
Merci pour ta réponse.

therebel23
18/05/2011, 21h35
En fait, l'objectif dans un premier temps était de faire sortir les appels par le FXO du SPA vers la freebox.
J'ai donc configuré asterisk pour qu'ils sortent les appels en SIP vers le SPA, et le SPA prend la ligne de la freebox et compose.

Une fois que cela fonctionnait, j'ai testé avec un ami, qui a, sur le même asterisk fait un appel sortant par le trunk SIP freephonie (car le trunk du SPA était occupé).

En fait, les 2 appels sont partis de l'asterisk en SIP , un par le SPA, un par le trunk SIP freephonie.

Après c'est juste une question de configuration ..

therebel23
18/05/2011, 21h40
Concernant la configuration du SPA et la sortie par le FXO , y'a une doc très bien faite ici :

http://www.linux-nuts.com/asterisk/

Côté asterisk, j'ai juste configuré un trunk SIP vers le SPA :



[3102]
type=peer
context=free
host=dynamic
username=3102
secret=motdepasse
insecure=port,invite

bobo023
18/05/2011, 21h42
En fait, l'objectif dans un premier temps était de faire sortir les appels par le FXO du SPA vers la freebox.
J'ai donc configuré asterisk pour qu'ils sortent les appels en SIP vers le SPA, et le SPA prend la ligne de la freebox et compose.

Une fois que cela fonctionnait, j'ai testé avec un ami, qui a, sur le même asterisk fait un appel sortant par le trunk SIP freephonie (car le trunk du SPA était occupé).

En fait, les 2 appels sont partis de l'asterisk en SIP , un par le SPA, un par le trunk SIP freephonie.

Après c'est juste une question de configuration ..

Ok, j'avais réussi à faire cela aussi. Je pensais que tu avais réussi à faire un double appelle "directement sur le spa vers la box" comme on est entrain d'essayer de la faire dans un autre sujet car c'est tout à fait possible avec un téléphone branché sur la box je l'ai réalisé tout à l'heure, maintenant il faut savoir comment faire la même procédure mais avec asterisk.

cyrflo
20/05/2011, 01h25
Slt vous utilisé quelle configuration ? asterisk ? ect ? j'envisage d' esayer sur machine virtuel avant de franchir le pas et que me conseillé vous car suis complet ment députant merci

bobo023
22/05/2011, 08h13
Slt vous utilisé quelle configuration ? asterisk ? ect ? j'envisage d' esayer sur machine virtuel avant de franchir le pas et que me conseillé vous car suis complet ment députant merci

Bonjour,

Je ne suis pas un spécialiste non plus car cela fait un peu plus d'un mois que j'ai découvert la voip, asterisk.... Moi j'utilise asterisk 1.6 sous fedora 14.