Freeswitch directory: Difference between revisions

From 탱이의 잡동사니
Jump to navigation Jump to search
(Created page with "== Overview == Freeswitch directory 내용 정리 == About == Directory 는 Freeswitch 에서 Device 와 Registration 정보를 관리한다. category:freeswitch")
 
 
(3 intermediate revisions by the same user not shown)
Line 3: Line 3:


== About ==
== About ==
Directory 는 Freeswitch 에서 Device 와 Registration 정보를 관리한다.
<freeswitch_conf_directory>/directory 디렉토리에는 Freeswitch 에서 사용되는 모든 user(i.e., SIP phone extensions) 정보들이 위치한다. 보통은 아래의 디렉토리에 위치한다.
<pre>
$ pwd
/etc/freeswitch/directory
$ tree
.
├── default
│   ├── 1000.xml
│   ├── 1001.xml
│   ├── 1002.xml
│   ├── brian.xml
│   ├── default.xml
│   ├── example.com.xml
│   └── skinny-example.xml
└── default.xml
</pre>


== User settings ==
<source lang=xml>
<include>
  <user id="1000" cidr="12.34.56.78/32,20.0.0.0/8"> <!--ID is the sip username. CIDR is optional -- if specified, these IPs with automatically auth to this user-->
    <params>
      <param name="password" value="correcthorsebatterystaple"/> <!--SIP password-->
      <param name="vm-password" value="8761"/>
    </params>
    <variables><!--these variable are accessible in the channel-->
      <variable name="accountcode" value="1000"/> <!--Use this in your dialplan for authorization and limits. Also, cdr_csv can use it for separate CDR files-->
      <variable name="user_context" value="default"/> <!--magic variable: specifies the context-->
      <variable name="effective_caller_id_name" value="Extension 1000"/><!--magic variable: used for outbound caller ID name-->
      <variable name="effective_caller_id_number" value="1000"/><!--magic variable: used for outbound caller ID name/number-->
    </variables>
  </user>
</include>
</source>
=== Basic User ===
기본적인 User 설정은 정말 간단하다. 간단히 name 과 password 만 설정하면 된다.
<source lang=xml>
<domain name="$${sip_profile}">
  <user id="mike">
    <params>
      <param name="password" value="micke"/>
    </params>
  </user>
</domain>
</source>
* domain
: domain 태그는 해당 User 가 FS 의 어느 Domain 에 속하는지를 알려준다. 다중 도메인 기능을 사용하지 않는한, 모든 User 는 모두 같은 Domain 값을 가져야 한다.
* user id
: SIP address 에서 @ 왼쪽에 오는 부분을 가리킨다. 여기에서는 mike 가 된다(mike@sub.mydomain.com).
<source lang=xml>
<include>
  <user id="1000">
    <params>
      <param name="password" value="$${default_password}"/>
      <param name="vm-password" value="1000"/>
    </params>
    <variables>
      <variable name="toll_allow" value="domestic,international,local"/>
      <variable name="accountcode" value="1000"/>
      <variable name="user_context" value="default"/>
      <variable name="effective_caller_id_name" value="Extension 1000"/>
      <variable name="effective_caller_id_number" value="1000"/>
      <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>
</source>
=== VCards ===
만약 mod_dingaling 모듈을 사용한다면 Vcard 형식을 지원할 수도 있다.
<source lang=xml>
<domain name="$${sip_profile}">
  <user id="peter">
    <params>
      <param name="password" value="thepassword"/>
    </params>
    <!-- This is only for mod_dingaling so it can deliver vcards in component mode-->
    <vcard xmlns='vcard-temp'>
      <FN>Peter Saint-Andre</FN>
      <N>
    <FAMILY>Saint-Andre</FAMILY>
    <GIVEN>Peter</GIVEN>
    <MIDDLE/>
      </N>
      <NICKNAME>stpeter</NICKNAME>
      <URL>http://www.jabber.org/people/stpeter.php</URL>
      <BDAY>1966-08-06</BDAY>
      <ORG>
    <ORGNAME>Jabber Software Foundation</ORGNAME>
    <ORGUNIT>Jabber Software Foundation</ORGUNIT>
      </ORG>
      <TITLE>Executive Director</TITLE>
      <ROLE>Patron Saint</ROLE>
      <TEL><WORK/><VOICE/><NUMBER>303-308-3282</NUMBER></TEL>
      <TEL><WORK/><FAX/><NUMBER/></TEL>
      <TEL><WORK/><MSG/><NUMBER/></TEL>
      <ADR>
    <WORK/>
    <EXTADD>Suite 600</EXTADD>
    <STREET>1899 Wynkoop Street</STREET>
    <LOCALITY>Denver</LOCALITY>
    <REGION>CO</REGION>
    <PCODE>80202</PCODE>
    <CTRY>USA</CTRY>
      </ADR>
      <TEL><HOME/><VOICE/><NUMBER>303-555-1212</NUMBER></TEL>
      <TEL><HOME/><FAX/><NUMBER/></TEL>
      <TEL><HOME/><MSG/><NUMBER/></TEL>
      <ADR>
    <HOME/>
    <EXTADD/>
    <STREET/>
    <LOCALITY>Denver</LOCALITY>
    <REGION>CO</REGION>
    <PCODE>80209</PCODE>
    <CTRY>USA</CTRY>
      </ADR>
      <EMAIL><INTERNET/><PREF/><USERID>stpeter@jabber.org</USERID></EMAIL>
      <JABBERID>stpeter@jabber.org</JABBERID>
      <DESC>
    More information about me is located on my
    personal website: http://www.saint-andre.com/
      </DESC>
    </vcard>
  </user>
</domain>
</source>
== Group settings ==
<source lang=xml>
<document type="freeswitch/xml">
<section name="directory">
  <domain name="sip.example.com">
    <users>
      <user id="1000">
        <params>
          <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/>
        </params>
        <variables>
          <variable name="user_context" value="default"/>
        </variables>
      </user>
      <user id="1001">
        <params>
          <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/>
        </params>
        <variables>
          <variable name="user_context" value="default"/>
        </variables>
      </user>
    </users>
    <groups>
      <group name="200">
        <users>
          <user id="2014">
            <params>
              <param name="dial-string" value="loopback/2014/default/XML"/>
            </params>
            <variables>
              <variable name="user_context" value="default"/>
            </variables>
          </user>
          <user id="1000" type="pointer"/>
          <user id="1001" type="pointer"/>
        </users>
      </group>
    </groups>
  </domain>
</section>
</document>
</source>
== See also ==
* https://freeswitch.org/confluence/display/FREESWITCH/XML+User+Directory - XML User Directory
[[category:freeswitch]]
[[category:freeswitch]]

Latest revision as of 14:47, 27 April 2016

Overview

Freeswitch directory 내용 정리

About

<freeswitch_conf_directory>/directory 디렉토리에는 Freeswitch 에서 사용되는 모든 user(i.e., SIP phone extensions) 정보들이 위치한다. 보통은 아래의 디렉토리에 위치한다.

$ pwd
/etc/freeswitch/directory
$ tree
.
├── default
│   ├── 1000.xml
│   ├── 1001.xml
│   ├── 1002.xml
│   ├── brian.xml
│   ├── default.xml
│   ├── example.com.xml
│   └── skinny-example.xml
└── default.xml

User settings

<source lang=xml> <include>

 <user id="1000" cidr="12.34.56.78/32,20.0.0.0/8"> 
   <params>
     <param name="password" value="correcthorsebatterystaple"/> 
     <param name="vm-password" value="8761"/>
   </params>
   <variables>
     <variable name="accountcode" value="1000"/> 
     <variable name="user_context" value="default"/> 
     <variable name="effective_caller_id_name" value="Extension 1000"/>
     <variable name="effective_caller_id_number" value="1000"/>
   </variables>
 </user>

</include> </source>

Basic User

기본적인 User 설정은 정말 간단하다. 간단히 name 과 password 만 설정하면 된다. <source lang=xml> <domain name="$${sip_profile}">

 <user id="mike">
   <params>
     <param name="password" value="micke"/>
   </params>
 </user>

</domain> </source>

  • domain
domain 태그는 해당 User 가 FS 의 어느 Domain 에 속하는지를 알려준다. 다중 도메인 기능을 사용하지 않는한, 모든 User 는 모두 같은 Domain 값을 가져야 한다.
  • user id
SIP address 에서 @ 왼쪽에 오는 부분을 가리킨다. 여기에서는 mike 가 된다(mike@sub.mydomain.com).

<source lang=xml> <include>

 <user id="1000">
   <params>
     <param name="password" value="$${default_password}"/>
     <param name="vm-password" value="1000"/>
   </params>
   <variables>
     <variable name="toll_allow" value="domestic,international,local"/>
     <variable name="accountcode" value="1000"/>
     <variable name="user_context" value="default"/>
     <variable name="effective_caller_id_name" value="Extension 1000"/>
     <variable name="effective_caller_id_number" value="1000"/>
     <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> </source>

VCards

만약 mod_dingaling 모듈을 사용한다면 Vcard 형식을 지원할 수도 있다. <source lang=xml> <domain name="$${sip_profile}">

 <user id="peter">
   <params>
     <param name="password" value="thepassword"/>
   </params>

   <vcard xmlns='vcard-temp'>
     <FN>Peter Saint-Andre</FN>
     <N>
   <FAMILY>Saint-Andre</FAMILY>
   <GIVEN>Peter</GIVEN>
   <MIDDLE/>
     </N>
     <NICKNAME>stpeter</NICKNAME>
     <URL>http://www.jabber.org/people/stpeter.php</URL>
     <BDAY>1966-08-06</BDAY>
     <ORG>
   <ORGNAME>Jabber Software Foundation</ORGNAME>
   <ORGUNIT>Jabber Software Foundation</ORGUNIT>
     </ORG>
     <TITLE>Executive Director</TITLE>
     <ROLE>Patron Saint</ROLE>
     <TEL><WORK/><VOICE/><NUMBER>303-308-3282</NUMBER></TEL>
     <TEL><WORK/><FAX/><NUMBER/></TEL>
     <TEL><WORK/><MSG/><NUMBER/></TEL>
     <ADR>
   <WORK/>
   <EXTADD>Suite 600</EXTADD>
   <STREET>1899 Wynkoop Street</STREET>
   <LOCALITY>Denver</LOCALITY>
   <REGION>CO</REGION>
   <PCODE>80202</PCODE>
   <CTRY>USA</CTRY>
     </ADR>
     <TEL><HOME/><VOICE/><NUMBER>303-555-1212</NUMBER></TEL>
     <TEL><HOME/><FAX/><NUMBER/></TEL>
     <TEL><HOME/><MSG/><NUMBER/></TEL>
     <ADR>
   <HOME/>
   <EXTADD/>
   <STREET/>
   <LOCALITY>Denver</LOCALITY>
   <REGION>CO</REGION>
   <PCODE>80209</PCODE>
   <CTRY>USA</CTRY>
     </ADR>
     <EMAIL><INTERNET/><PREF/><USERID>stpeter@jabber.org</USERID></EMAIL>
     <JABBERID>stpeter@jabber.org</JABBERID>
     <DESC>
   More information about me is located on my
   personal website: http://www.saint-andre.com/
     </DESC>
   </vcard>

 </user>

</domain> </source>

Group settings

<source lang=xml> <document type="freeswitch/xml">

<section name="directory">
  <domain name="sip.example.com">
    <users>
      <user id="1000">
        <params>
          <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/>
        </params>
        <variables>
          <variable name="user_context" value="default"/>
        </variables>
      </user>
      <user id="1001">
        <params>
          <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/>
        </params>
        <variables>
          <variable name="user_context" value="default"/>
        </variables>
      </user>
    </users>
    <groups>
      <group name="200">
        <users>
          <user id="2014">
            <params>
              <param name="dial-string" value="loopback/2014/default/XML"/>
            </params>
            <variables>
              <variable name="user_context" value="default"/>
            </variables>
          </user>
          <user id="1000" type="pointer"/>
          <user id="1001" type="pointer"/>
        </users>
      </group>
    </groups>
  </domain>
</section>

</document> </source>

See also