Ubuntu Precise Pangoline サーバーの freeswitch PBX でいくつかのテストを実行しています。私が使用している Freeswitch のバージョンは、git リポジトリのものです。SIP ユーザーを追加し、SIP 電話から Freeswitch にアクセスすると、次のエラー メッセージが表示され続けます。
2013-04-22 08:34:20.146022 [CONSOLE] switch_core.c:2096
FreeSWITCH Version 1.5.1b+git~20130417T225111Z~54d47599e9 (git 54d4759 2013-04-17 22:51:11Z)
FreeSWITCH Started
Max Sessions [1000]
Session Rate [30]
SQL [Enabled]
freeswitch@moses> 2013-04-22 08:35:20.688573 [WARNING] sofia_reg.c:2621 Can't find user [1100@192.168.125.128] from 192.168.125.1
You must define a domain called '192.168.125.128' in your directory and add a user with the id="1100" attribute
and you must configure your device to use the proper domain in it's authentication credentials.
これらは、SIP ユーザーを作成するために行った手順です。conf ディレクトリの freeswitch.xml に記載されているように、すべての構成設定は、vanilla フォルダーで行う必要があります。私はそこに行き、ディレクトリフォルダーで、デフォルトの1つをコピーしてユーザーxmlファイルを作成し、設定を変更しました:
root@moses:/usr/local/src/freeswitch/conf/vanilla/directory/default# vim 1100.xml
<include>
<user id="1100">
<params>
<param name="password" value="$${default_password}"/>
<param name="vm-password" value="1100"/>
</params>
<variables>
<variable name="toll_allow" value="domestic,international,local"/>
<variable name="accountcode" value="1100"/>
<variable name="user_context" value="default"/>
<variable name="effective_caller_id_name" value="Gwen"/>
<variable name="effective_caller_id_number" value="1100"/>
<variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
<variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
<variable name="callgroup" value="techsupport"/>
</variables>
</user>
</include>
後で、dialplan フォルダーの default.xml ファイルを編集し、Local_Extension の下に、次のように正規表現に 1100 を追加しました。
root@moses:/usr/local/src/freeswitch/conf/vanilla/dialplan# vim default.xml
<?xml version="1.0" encoding="utf-8"?>
<!--
NOTICE:
This context is usually accessed via authenticated callers on the sip profile on port 5060
or transfered callers from the public context which arrived via the sip profile on port 5080.
Authenticated users will use the user_context variable on the user to determine what context
they can access. You can also add a user in the directory with the cidr= attribute acl.conf.xml
will build the domains ACL using this value.
-->
<!-- http://wiki.freeswitch.org/wiki/Dialplan_XML -->
<include>
...................
<extension name="Local_Extension">
<!--<condition field="destination_number" expression="^(10[01][0-9]|1100)$"> -->
<condition field="destination_number" expression="^1100$">
<action application="export" data="dialed_extension=$1"/>
<!-- bind_meta_app can have these args <key> [a|b|ab] [a|b|o|s] <app> -->
<action application="bind_meta_app" data="1 b s execute_extension::dx XML features"/>
<action application="bind_meta_app" data="2 b s record_session::$${recordings_dir}/${caller_id_number}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
<action application="bind_meta_app" data="3 b s execute_extension::cf XML features"/>
<action application="bind_meta_app" data="4 b s execute_extension::att_xfer XML features"/>
<action application="set" data="ringback=${us-ring}"/>
<action application="set" data="transfer_ringback=$${hold_music}"/>
<action application="set" data="call_timeout=30"/>
<!-- <action application="set" data="sip_exclude_contact=${network_addr}"/> -->
<action application="set" data="hangup_after_bridge=true"/>
<!--<action application="set" data="continue_on_fail=NORMAL_TEMPORARY_FAILURE,USER_BUSY,NO_ANSWER,TIMEOUT,NO_ROUTE_DESTINATION"/> -->
<action application="set" data="continue_on_fail=true"/>
<action application="hash" data="insert/${domain_name}-call_return/${dialed_extension}/${caller_id_number}"/>
<action application="hash" data="insert/${domain_name}-last_dial_ext/${dialed_extension}/${uuid}"/>
<action application="set" data="called_party_callgroup=${user_data(${dialed_extension}@${domain_name} var callgroup)}"/>
<action application="hash" data="insert/${domain_name}-last_dial_ext/${called_party_callgroup}/${uuid}"/>
<action application="hash" data="insert/${domain_name}-last_dial_ext/global/${uuid}"/>
<!--<action application="export" data="nolocal:rtp_secure_media=${user_data(${dialed_extension}@${domain_name} var rtp_secure_media)}"/>-->
<action application="hash" data="insert/${domain_name}-last_dial/${called_party_callgroup}/${uuid}"/>
<action application="bridge" data="user/${dialed_extension}@${domain_name}"/>
<action application="answer"/>
<action application="sleep" data="1000"/>
<action application="bridge" data="loopback/app=voicemail:default ${domain_name} ${dialed_extension}"/>
</condition>
</extension>
............
</include>
これまでネット上で vars.xml に local_ip_v4 を設定して見つけたすべてのソリューションを試しましたが、うまくいきませんでした。誰かが私を助けることができますか?