2017-09-22 16 views
0

私はアスタリスクの総初心者で一般的なコールラインを管理していますが、私はAsterisk Now 13ディストリビューションをインストールすることができました。私は2つのSIP電話機をpjsipで接続し、SIPトランクこれは、対応するプレフィックスを持つ外部番号をダイヤルすると機能します。今や私はプログラム的に呼び出しを発信し、それを地元の内線に接続する必要があります。私はそれを達成する方法がわからず、数時間の検索の後にインターネット上で多くの情報を見つけるようです。アスタリスクマネージャーapi java

私は次のようにアスタリスクマネージャAPIとOriginateActionで2台のローカルSIP電話機を接続するために管理:

originateAction = new OriginateAction(); 
      originateAction.setChannel(ConnectionType+"/"+extCaller); 
      originateAction.setContext(context); 
      originateAction.setCallerId(idCaller); 
      originateAction.setExten(tDestination); 
      originateAction.setPriority(priority); 
      originateAction.setTimeout(timeoutCall); 
managerConnection.login(); 

     originateResponse = managerConnection.sendAction(originateAction, timeoutRequest); 

私もこのchannel originate pjsip/201 extension [email protected]channel originate local/[email protected] extension [email protected]を試してみました。

PJSIPトランクのコンテキストはfrom-pstnです。アスタリスクcliとアプリケーションの両方で、さまざまな方法でそれを使ってみました。

PJSIPトランクを使用して電話を発信し、オフィスから電話をかけるにはどうすればよいですか?

編集:私はまだない

:私はトランク往路の前提条件と「から内部」は、このような文脈で完了番号を使用して発信通話を発信しなぜこれが機能し、それが私の質問に対する正解であるかを理解する。

答えて

0

答えは質問の編集です。私が見つけることができる発信呼び出しを生成する唯一の方法は、(内部コールを発信するときに使用されるコンテキストと同じコンテキストになるコンテキスト「内部から」という)内部呼び出しを発信し、 SIPトランクのルートパターン要件で完了します。

例:任意nubmerそれの0インフロント有することを意味する[0] {1}/ /: Iパターン(正規表現)とSIPトランク(trunk1)のために設定したルートを持っていますそのルートの有効な値になり、trunk1を使用して呼び出しを試みます。

AsteriskNow CentOSのインストールの場合、「from-internal」というコンテキストを使用することがあります。アスタリスク設定ファイルはFreePBXによって所有されているので、アスタリスクmanualyの.confファイルを設定するのではなく、FreePBX GUIを使用することが推奨されます。

に結論:

最初の拡張201のリングを行いますと、拾ったとき、それは0とルートが「と呼ばれているので、[numberToCall]というをダイヤルするSIPトランクを使用しようとします
channel originate Local/[email protected] extension (0)[numberToCall]@from-internal 

"

ManagerConnectionFactory factory = new 
ManagerConnectionFactory("serverIp", "username", 
        "passwd"); 
ManagerConnection managerConnection=factory.createManagerConnection() 
    OriginateAction originateAction=new OriginateAction(); 

    final String randomUUID=java.util.UUID.randomUUID().toString(); 

      System.out.println("ID random:_"+randomUUID); 

      originateAction.setChannel([connectionType]+"/"+[callerExtension]);<-- SIP or PJSIP/201(the phone that will ring first) 
      originateAction.setContext("from-internal"); <-- Default FreePBX context 
      originateAction.setCallerId([callerId]); // what will be showed on the phone screen (in most cases your phone) 
      originateAction.setExten([targetExten]); //where to call.. the target extension... internal extension or the outgoing number.. the 0[nomberToCall] 
      originateAction.setPriority([priority]);// priority of the call 
      originateAction.setTimeout(timeoutCall); // the time that a pickup event will be waited for 
      originateAction.setVariable("UUID", randomUUID); // asigning a unique ID in order to be able to hangup the call. 
:アスタリスク-Javaを使用してアスタリスクためにそのコマンドを送信するために

は、私は次のコードを書きました