Freeswitch directory

From 탱이의 잡동사니
Revision as of 14:47, 27 April 2016 by Pchero (talk | contribs) (→‎Group settings)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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