6

私はAsteriskPBXを使用してソフトフォンを呼び出しています。このコマンドを使用します:「originateSIP / 100 Extension 4004」、ダイヤルプランでCALLERID変数を取得する必要がありますが、この場合は常に空です。

PS:内線番号(4004)をソフトフォン(100)から呼び出すと、CALLERIDが設定され、:で取得できます${CALLERID(num)}

発信元のケースで発信者IDを取得するにはどうすればよいですか?

4

3 に答える 3

10

発信するときは、発信者番号を自分で設定します。これを行うには、元のアプリケーションで自分で行う方法と、ダイヤルプランで行う方法の2つがあります。この例を以下に示します。

Action: Originate
Channel: local/12345@outgoing
Application: Echo
CallerID: Asterisk <12345>

extends.conf:

[outgoing]
exten => 12345,1,NoOp()
same => n,Verbose(1, Outgoing Caller ID: {$CALLERID(all)})
same => n,Dial(SIP/${EXTEN})
same => n,Hangup()

または、次のようなことを行うことができます。

exten => 12345,1,NoOp()
same => n,Set(CALLERID(num)=54321)
same => n,Set(CALLERID(name)=Asterisk)
same => n,Verbose(1, Outgoing Caller ID: {$CALLERID(all)})
same => n,Dial(SIP/${EXTEN})
same => n,Hangup()

発信者IDがAMI発信元に設定されているか、ダイヤルプランで上書きすることを選択した場合は、それらの値が表示されます。

詳細については、 ManagerActionOriginateおよびCallerIDFunctionを参照してください。

于 2012-04-08T02:14:48.550 に答える
3

私はこれがかなり遅いことを知っていますが、Asterisk 1.8を使用している場合、Originateアプリはそれを正常に許可しません。

以前フォーラムで質問したことがありますが、機能は後で追加されるとのことでした。だから私がしたのは、app_originate.cを変更して、番号と名前を渡せるようにすることでした。

これが私が昨年書いたものです: https ://github.com/cmendes0101/asterisk-originate-callerid

1年以上生産されており、順調に稼働しています。1.8のために書かれました。これは簡単な変更だったので、別のバージョンを使用している場合は、変更を簡単に比較し、バージョンに小さな変更を加えてそれを実現できます。

于 2013-02-19T19:24:05.763 に答える
1

私が今使っている最終的な解決策:

  • 私は自分の拡張機能をphpスクリプトから呼び出します(SIP / 100拡張機能777を作成します)
  • 拡張機能をテキストファイル(file_put_contents)に書き込みます
  • 次に、アスタリスクのダイヤルプランでそれを読み取り、この変数を発信者IDとして設定しますSet(CALLERID(num)= $ {caller_id}

私は別の解決策を見つけられませんでした。

于 2012-04-27T16:02:44.793 に答える