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!
 

Thomas007

Aktives Mitglied
Mitglied seit
18 Sep 2005
Beiträge
1,455
Punkte für Reaktionen
0
Punkte
0
Such mal nach call files auf voip-info.org.

Das ist für den Anfang etwas einfacher.
 

sc0000b

Neuer User
Mitglied seit
21 Sep 2006
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
da steh ich aber vor dem gleichen problem:

zwei EXTERNE nummern anrufen die der PBX vorher nicht bekannt sind scheint nicht zu gehen. :-(
 

Thomas007

Aktives Mitglied
Mitglied seit
18 Sep 2005
Beiträge
1,455
Punkte für Reaktionen
0
Punkte
0
Den Channel baust Du auf mit SIP/[email protected]_out für Wahl über einen Provider oder SIP/name_des_peers für einen bekannten Client.
 

sc0000b

Neuer User
Mitglied seit
21 Sep 2006
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
provider_out = name des trunks?
 

Thomas007

Aktives Mitglied
Mitglied seit
18 Sep 2005
Beiträge
1,455
Punkte für Reaktionen
0
Punkte
0
z.B. Name des peers in der sip.conf

[provider_out]
type=peer
username=user
secret=geheim
fromdomain=domain.tld
host=domain.tld
usw.
 

sc0000b

Neuer User
Mitglied seit
21 Sep 2006
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
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
 

Thomas007

Aktives Mitglied
Mitglied seit
18 Sep 2005
Beiträge
1,455
Punkte für Reaktionen
0
Punkte
0
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
 

sc0000b

Neuer User
Mitglied seit
21 Sep 2006
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
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)
 

Thomas007

Aktives Mitglied
Mitglied seit
18 Sep 2005
Beiträge
1,455
Punkte für Reaktionen
0
Punkte
0
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/[email protected]

Hast Du da auch einen Doppelpunkt drin?

Zeig mal die CLI Ausgabe vom Asterisk
 

Thomas007

Aktives Mitglied
Mitglied seit
18 Sep 2005
Beiträge
1,455
Punkte für Reaktionen
0
Punkte
0
ja hinter Channel und den anderen Parametern gehört ein Doppelpunkt
Channel: SIP/[email protected]

siehe Doko

Bei callfiles muss der Doppelpunkt auch rein, Asteriskt nimmt den wohl als Feldtrenner
 

sc0000b

Neuer User
Mitglied seit
21 Sep 2006
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
"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.
 

Thomas007

Aktives Mitglied
Mitglied seit
18 Sep 2005
Beiträge
1,455
Punkte für Reaktionen
0
Punkte
0
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.
 

sc0000b

Neuer User
Mitglied seit
21 Sep 2006
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
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?
 

Thomas007

Aktives Mitglied
Mitglied seit
18 Sep 2005
Beiträge
1,455
Punkte für Reaktionen
0
Punkte
0
asterisk.conf
[options]
verbose = 6

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

starten mit
#asterisk -c
 

sc0000b

Neuer User
Mitglied seit
21 Sep 2006
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
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. ;-)
 

TinTin

Aktives Mitglied
Mitglied seit
6 Mai 2004
Beiträge
1,864
Punkte für Reaktionen
0
Punkte
0
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:

Thomas007

Aktives Mitglied
Mitglied seit
18 Sep 2005
Beiträge
1,455
Punkte für Reaktionen
0
Punkte
0
nach Originate muss es weitergehen.

Sonst nimm Ethereal und schau was da genau hingeschickt wird.
Die Syntax von voip-info.org hast Du ja
 

sc0000b

Neuer User
Mitglied seit
21 Sep 2006
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
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/[email protected]' 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

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
231,819
Beiträge
2,015,595
Mitglieder
348,867
Neuestes Mitglied
matt82