Per Script zwei externe Nummer anrufen?

sc0000b

Neuer User
Mitglied seit
21 Sep 2006
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Gibt es eine Möglichkeit, wie ich aus Asterisk zwei externe Nummern anrufen kann und diese dann ein Gespräch zusammen führen?

Ich hab folgendes dazu gefunden:

http://www.voip-info.org/wiki/view/Asterisk+Manager+API+Action+Originate

Leider krieg ich bei obenstehendem Command immer den Fehler "channel not available". Mach ich was falsch? Bin ich auf dem falschen Weg? Geht das überhaupt?

Vielen Dank für Eure Hilfe!
 
Such mal nach call files auf voip-info.org.

Das ist für den Anfang etwas einfacher.
 
da steh ich aber vor dem gleichen problem:

zwei EXTERNE nummern anrufen die der PBX vorher nicht bekannt sind scheint nicht zu gehen. :-(
 
Den Channel baust Du auf mit SIP/nummer@provider_out für Wahl über einen Provider oder SIP/name_des_peers für einen bekannten Client.
 
provider_out = name des trunks?
 
z.B. Name des peers in der sip.conf

[provider_out]
type=peer
username=user
secret=geheim
fromdomain=domain.tld
host=domain.tld
usw.
 
vielen dank, aber es scheint trotzdem nicht zu funktionieren. :-(

eigentlich ist die frage nur ein umweg zu meinem eigentlichen problem. ich will das ganze aus einer java-applikation raus machen und nutze dafür die folgende funktion aus asterisk-java (java-schnittstelle zu AGI/AMI):

originateToExtension()

dabei müssen folgende parameter mitgegeben werden:
channel
context
exten(sion)
priority
timeout

...ich hab jetzt folgendes eingegeben:
channel = SIP/<nummer_des_anrufers>@CityTel
context = CityTel
exten = SIP/<nummer_des_angerufenen>@CityTel
priority = 1
timeout = 30000 (30 sekunden)

kriege dabei aber noch immer folgende fehlermeldung:

Channel SIP/<nummer_des_anrufers>@CityTel is not available.

noch irgendeine idee auf lager? :)

der vollständigkeit halber noch die config meines providers in sip.conf:

[CityTel]
username=<meine nummer>
useragent=unknown
type=friend
secret=<mein passwort>
insecure=very
host=sip.citytel.ch
fromuser=<meine nummer>
fromdomain=sip.citytel.ch
dtmfmode=auto
context=from-internal-trixbox
canreinvite=no
 
Nummern stehen in <..>?


nächster Fehler wäre dann

exten = SIP/<nummer_des_angerufenen>@CityTel

so eine EXTEN wirst Du nicht im Dialplan haben.
Da steht z.B. 089123456

im Dialpan dann
exten => _0.,1,DIAL(SIP.....



Und es muss natürlich [CityTel] in der sip.conf geben
 
nein, nummern stehen natürlich nicht in < >, aber die EXTEN gibt's natürlich sowieso nicht. das ganze läuft über eine webapplikation und jede person die zugang zur webapplikation hat, darf auch wild nummern eingeben.

anwendungsfall sieht dann in etwa so aus:

personA will personB anrufen, aber dafür selbst nix zahlen. personA nutzt also die webapplikation und gibt die eigene nummer und die von personB ein. webapplikation erhält beide angaben und baut auf diesen ausgehend eine verbindung auf.

hoffe konnte einigermassen verständlich machen was ich eigentlich machen will. :)

CityTel gibt's in sip.conf (siehe dazu ausschnitt aus sip.conf)
 
Ist schon klar was Du machen willst, trotzdem musst Du die EXTEN angeben bei dem der angerufen wird.

Das Problem ist aber schon beim Aufbau des Channels:

Channel: SIP/089123456@provider

Hast Du da auch einen Doppelpunkt drin?

Zeig mal die CLI Ausgabe vom Asterisk
 
ja hinter Channel und den anderen Parametern gehört ein Doppelpunkt
Channel: SIP/089123456@provider

siehe Doko

Bei callfiles muss der Doppelpunkt auch rein, Asteriskt nimmt den wohl als Feldtrenner
 
"channel:" brauche ich bei asterisk-java soweit ich weiss nicht. parameter ist ja schon als channel definiert. siehe dazu diesen thread zur syntax von der von mir gebrauchten funktion:

thread 7634 im digium-forum

find ich im cli-output das gleiche wie im asterisk-logfile? dann könnte ich nämlich einfach den entsprechenden ausschnitt aus den logfiles hier reinkopieren.
 
Ich weiß nicht was Java da macht, aber irgendwo klemmt es.

Kommt auf die Einstellungen an, schau doch mal nach was da steht und setze ansonsten verbose auf 4.

Außer dem Doppelpunkt sehe ich auch keinen weitere Fehlerquelle mehr, sofern Du Dich an die Doku von voip-info.org gehalten hast.
 
hab die box nicht nach voip-info-org aufgesetzt. ist ein trixbox-setup, welches aber ansonsten funktioniert. das heisst: es hängen zwei telefone dran und ich kann über die asterisk-box und meinen voip-provider auf externe telefone anrufen und mich auch anrufen lassen. grundsätzlich sollte das ganze also funktionieren.

ich weiss, hätte mir das leben sicher einfacher gemacht wenn ich asterisk von grund auf selbst aufgesetzt hätte, dazu fehlte mir aber schlicht die zeit, zumal das thema meiner diplomarbeit nicht asterisk ist sondern diesen server bloss als plattform braucht um meine java-wünsche zu erfüllen. :)

wo bzw. in welchem config-file kann ich den verbose-mode denn einstellen?
 
asterisk.conf
[options]
verbose = 6

logger.conf
[logfiles]
console => notice,warning,error

starten mit
#asterisk -c
 
hab schnell ein neues logfile erstellt mit 'notice,warning,error,debug'. wenn ich jetzt versuche meine app zu starten bzw. einen anruf zu erstellen kommt folgender output:

Code:
Sep 27 18:16:17 DEBUG[27986] chan_sip.c: Auto destroying call '[email protected]'
Sep 27 18:16:17 DEBUG[28008] manager.c: Manager received command 'Challenge'
Sep 27 18:16:17 DEBUG[28008] manager.c: Manager received command 'Login'
Sep 27 18:16:17 DEBUG[28008] acl.c: 0.0.0.0/0.0.0.0/0.0.0.0 appended to acl for peer
Sep 27 18:16:17 DEBUG[28008] acl.c: 0.0.0.0/0.0.0.0/0.0.0.0 appended to acl for peer
Sep 27 18:16:17 DEBUG[28008] acl.c: ##### Testing 127.0.0.1 with 0.0.0.0
Sep 27 18:16:17 DEBUG[28008] acl.c: ##### Testing 127.0.0.1 with 0.0.0.0
Sep 27 18:16:17 DEBUG[28008] manager.c: Manager received command 'Command'
Sep 27 18:16:17 DEBUG[28008] manager.c: Manager received command 'Status'
Sep 27 18:16:17 DEBUG[28008] manager.c: Manager received command 'QueueStatus'
Sep 27 18:16:17 DEBUG[28008] manager.c: Manager received command 'Originate'

...nicht sehr aussagekräftig. ;-)
 
Auf php basierend habe ich hier eine Anleitung für web-basierte Anrufvermittlung unter Verwendung der Asterisk Manager API veröffentlicht. Siehe Punkt 5 auf der Seite für variable Rückrufnummer. Drumherum kann man sich natürlich noch eine Webseite mit Eingabemaske selbst basteln oder Du rufst das php script direkt aus Deiner Java-Applikation auf.

Gruß,
Tin
 
Zuletzt bearbeitet:
nach Originate muss es weitergehen.

Sonst nimm Ethereal und schau was da genau hingeschickt wird.
Die Syntax von voip-info.org hast Du ja
 
Hab versucht die PHP-Geschichte zu meinem Nutzen anzupassen, das Ganze läuft aber noch immer nicht.

Hab eine eigene Extension namens 'kronos' geschaffen (siehe hier).

Die SIP-Config meines Providers seht ihr hier.

Beim Versuch einen Anruf zu tätigen, kriege ich folgenden Output ins Log und meine Java-Applikation wirft noch immer folgende Exception:

Code:
ERROR: Couldn't find channel: org.asteriskjava.live.NoSuchChannelException: Channel 'SIP/HIDDEN_CALLER_NUMBER@CityTel' is not available

Hat irgend jemand eine Ahnung wie sich dieses Problem eingrenzen bzw. lösen lässt?

Anmerkung: Alle HIDDEN_XYZ-Einträge markieren von mir verfälschte bzw. versteckte Daten. Kann sich wohl jeder selbst vorstellen was jeweils anstelle des HIDDEN_XYZ stand. ;-)
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,695
Beiträge
2,216,692
Mitglieder
371,315
Neuestes Mitglied
jack-mack
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.