์ ์ฒ๋ผ ๋ญ๊ฐ ๋ ํนํ ์ผ์ ํ๊ณ ์ถ๋ค๋ ์๊ฐ์ ๊ฐ๊ณ ์๋ ๋ถ๋ค์ด ๋ถ๋ช ๋ง์ ๊ฒ์ ๋๋ค. ์ด ๊ธ์์๋ PBX๋ฅผ ๊ฐ๋ฐํ๋ฉด์ ์ง๋ฉดํ๋ ๊ธฐ์ ์ ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํ๊ฒ ์ต๋๋ค. ์๋ง๋ ์ด๊ฒ์ ๋๊ตฐ๊ฐ๊ฐ ์์ ์ ์์ด๋์ด๋ฅผ ๊ฒฐ์ ํ๊ณ ๋๊ตฐ๊ฐ๊ฐ ๊ตฌํ๋นํ ๊ธธ์ ๋ฐ๋ฅด๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ์๋ํ๋ฉด ๋ ๋ํ ๊ฐ์ฒ์์ ๊ฒฝํ์ผ๋ก๋ถํฐ ํํ์ ๋ฐ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์์ด๋์ด ๋ฐ ์ฃผ์ ์๊ตฌ ์ฌํญ
๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๊ฒ์ ๋จ์ํ ์ฌ๋์ผ๋ก ์์๋์์ต๋๋ค. ๋ณํ (ํต์ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ํ ํ๋ ์์ํฌ), ์ ํ ํต์ ๋ฐ ์ค์น ์๋ํ FreePBX (์น ์ธํฐํ์ด์ค ๋ณํ). ํ์ฌ์ ์๊ตฌ์ฌํญ์ด ๊ตฌ์ฒด์ ์ด์ง ์๊ณ ๋ฅ๋ ฅ์ ๋ถํฉํ๋ ๊ฒฝ์ฐ FreePBX - ๋ชจ๋ ๊ฒ์ด ์ข์. ์ ์ฒด ์ค์น๋ XNUMX์๊ฐ ์ด๋ด์ ์๋ฃ๋์์ผ๋ฉฐ ํ์ฌ๋ ๊ตฌ์ฑ๋ PBX, ์ฌ์ฉ์ ์นํ์ ์ธ ์ธํฐํ์ด์ค, ์งง์ ๊ต์ก ๋ฐ ์ํ ๊ฒฝ์ฐ ์ง์์ ๋ฐ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ์์ ์ ๋นํ์ค์ ์ด์๊ณ ๊ทธ๋ค์ง ํ๋ฅญํ์ง๋ ์์์ต๋๋ค. ๋ณํ ๋ง์ ์ผ์ ํ ์ ์์ง๋ง ์น ์ธํฐํ์ด์ค๋ฅผ ์ ๋๋ก ์๋ํ๋ ค๋ฉด ๋ช ๋ฐฐ ๋ ๋ง์ ์๊ฐ์ ์๋นํด์ผ ํ์ต๋๋ค. ๋ฐ๋ผ์ ์์ ์ธ๋ถ ์ฌํญ์ ๋๋จธ์ง PBX๋ฅผ ์ค์นํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ์ค๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ ์ ์น ์ธํฐํ์ด์ค๋ฅผ ์์ฑํ๋ ๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค๋ ๊ฒ์ด ์๋๋ผ ์ํคํ ์ฒ ๊ธฐ๋ฅ์ ์์ต๋๋ค. FreePBX. ์ํคํ ์ฒ ์ ๊ทผ ๋ฐฉ์ ๋ฐ ๋ฐฉ๋ฒ FreePBX php4 ๋น์์ ๋ฐฐ์น๋์๊ณ ๊ทธ ๋น์ ์ด๋ฏธ ๋ชจ๋ ๊ฒ์ ๋ ๊ฐ๋จํ๊ณ ํธ๋ฆฌํ๊ฒ ๋ง๋ค ์ ์๋ php5.6์ด ์์์ต๋๋ค.
๋ง์ง๋ง ๋นจ๋๋ ๋ค์ด์ด๊ทธ๋จ ํํ์ ๊ทธ๋ํฝ ๋ฒํธ ๊ณํ์ด์์ต๋๋ค. ๋ด๊ฐ ์ด๋ฐ ๊ฒ์ ๋ง๋ค๋ ค๊ณ ํ์ ๋ FreePBX, ๋๋ ๊ทธ๊ฒ์ ํฌ๊ฒ ๋ค์ ์์ฑํด์ผํ๊ณ ์๋ก์ด ๊ฒ์ ๋ง๋๋ ๊ฒ์ด ๋ ์ฌ์ธ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
์ฃผ์ ์๊ตฌ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ฐ๋จํ ์ค์ ์ผ๋ก ์ด๋ณด ๊ด๋ฆฌ์๋ ์ง๊ด์ ์ผ๋ก ์ ๊ทผํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ธฐ์ ์์๋ ๋น์ฌ์ธก์ PBX ์ ์ง๊ด๋ฆฌ๋ฅผ ์๊ตฌํ์ง ์์ผ๋ฉฐ,
- ์์ ์ด ์ ์ ํ ์๊ฐ ๋ด์ ํด๊ฒฐ๋๋๋ก ์ฝ๊ฒ ์์ ํ ์ ์์ต๋๋ค.
- PBX์์ ํตํฉ ์ฉ์ด์ฑ. ์ FreePBX ์ค์ ๋ณ๊ฒฝ์ ์ํ API๊ฐ ์์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ๊ทธ๋ฃน์ด๋ ์์ฑ ๋ฉ๋ด๋ฅผ ์์ฑํ ์ ์์ผ๋ฉฐ API ์์ฒด์์๋ง ์์ฑํ ์ ์์ต๋๋ค. ๋ณํ,
- ์คํ ์์ค - ํ๋ก๊ทธ๋๋จธ์ ๊ฒฝ์ฐ ์ด๋ ํด๋ผ์ด์ธํธ ์์ ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
๋ ๋น ๋ฅธ ๊ฐ๋ฐ ์์ด๋์ด๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ฒด ํํ์ ๋ชจ๋๋ก ๊ตฌ์ฑํ๋ ๊ฒ์ด์์ต๋๋ค. ๋ชจ๋ ๊ฐ์ฒด์๋ ๊ณตํต ์์ ํด๋์ค๊ฐ ์์ด์ผ ํฉ๋๋ค. ์ฆ, ๋ชจ๋ ์ฃผ์ ๊ธฐ๋ฅ์ ์ด๋ฆ์ด ์ด๋ฏธ ์๋ ค์ ธ ์์ผ๋ฏ๋ก ๊ธฐ๋ณธ ๊ตฌํ์ด ์ด๋ฏธ ์๋ค๋ ์๋ฏธ์ ๋๋ค. ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์์ด ํค๊ฐ ์๋ ์ฐ๊ด ๋ฐฐ์ด ํํ๋ก ์ธ์ ์๋ฅผ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. FreePBX ์ ์ฒด ํจ์์ ์ค์ฒฉ๋ ํจ์๋ฅผ ์ดํด๋ณด์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ์ต๋๋ค. ๊ฐ์ฒด์ ๊ฒฝ์ฐ ์ง๋ถํ ์๋ ์์ฑ ๊ธฐ๋ฅ์ ๋ชจ๋ ์์ฑ์ ํ์ํ๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ์๋ช ์ ์ฌ๋ฌ ๋ฒ ๋จ์ํํฉ๋๋ค. ๋ํ ์์๊ณผ ์ฌ์ ์๋ ์ด๋ฏธ ์์ ๊ณผ ๊ด๋ จ๋ ๋ง์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
์ฌ์์ ์๊ฐ์ ๋ฆ์ถ๊ณ ํผํ ๊ฐ์น๊ฐ ์๋ ๋ค์ ๊ฒ์ ์ค๋ณต์ด์์ต๋๋ค. ์ง์์๊ฒ ์ ํ ๊ฑธ๊ธฐ๋ฅผ ๋ด๋นํ๋ ๋ชจ๋์ด ์๋ ๊ฒฝ์ฐ ์ง์์๊ฒ ์ ํ๋ฅผ ๋ณด๋ด๋ ๋ฐ ํ์ํ ๋ค๋ฅธ ๋ชจ๋ ๋ชจ๋์ ์ด๋ฅผ ์ฌ์ฉํด์ผ ํ๋ฉฐ ์์ฒด ๋ณต์ฌ๋ณธ์ ์์ฑํด์๋ ์ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ ํ ๊ณณ์์๋ง ๋ณ๊ฒฝํด์ผ ํ๋ฉฐ "์๋ ๋ฐฉ์"์ ๋ํ ๊ฒ์์ ์ ์ฒด ํ๋ก์ ํธ์์ ๊ฒ์ํ๋ ๊ฒ์ด ์๋๋ผ ํ ๊ณณ์์ ์ํํด์ผ ํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ๋ฒ์ ๋ฐ ์ฒซ ๋ฒ์งธ ์ค๋ฅ
์ฒซ ๋ฒ์งธ ํ๋กํ ํ์ ์ XNUMX๋ ์์ ์ค๋น๋์์ต๋๋ค. ๊ณํ๋๋ก ์ ์ฒด PBX๋ ๋ชจ๋์์ด์๊ณ ๋ชจ๋์ ํตํ ์ฒ๋ฆฌ๋ฅผ ์ํ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ์น ์ธํฐํ์ด์ค ์์ฒด๋ ๋ณ๊ฒฝํ ์ ์์์ต๋๋ค.
์, ๊ทธ๋ฌํ ๊ณํ์ ํํ๋ก ๋ฒํธ ๊ณํ์ ๊ตฌ์ถํ๋ค๋ ์์ด๋์ด๋ ๋ด ๊ฒ์ด ์๋์ง๋ง ๋งค์ฐ ํธ๋ฆฌํ๊ณ ๋๋ ๋๊ฐ์ดํ์ต๋๋ค. ๋ณํ.
๋ชจ๋์ ์์ฑํจ์ผ๋ก์จ ํ๋ก๊ทธ๋๋จธ๋ ์ด๋ฏธ ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
- ๋ค์ด์ด๊ทธ๋จ๊ณผ ์ผ์ชฝ ์์ ๋ฉ๋ด์ ๋ฐฐ์นํ ์ ์๋ ํตํ ์ฒ๋ฆฌ๋ฅผ ์ํ ๊ณ ์ ํ ๊ธฐ๋ฅ์ ์์ฑํฉ๋๋ค.
- ์น ์ธํฐํ์ด์ค๋ฅผ ์ํ ์์ ๋ง์ ํ์ด์ง๋ฅผ ๋ง๋ค๊ณ ๊ธฐ์กด ํ์ด์ง์ ํ ํ๋ฆฟ์ ์ถ๊ฐํฉ๋๋ค(ํ์ด์ง ๊ฐ๋ฐ์๊ฐ ์ด๋ฅผ ์ ๊ณตํ ๊ฒฝ์ฐ).
- ๊ธฐ๋ณธ ์ค์ ํญ์ ์ค์ ์ ์ถ๊ฐํ๊ฑฐ๋ ์์ ๋ง์ ์ค์ ํญ์ ๋ง๋์ธ์.
- ํ๋ก๊ทธ๋๋จธ๋ ๊ธฐ์กด ๋ชจ๋์ ์์ํ๊ณ ๊ธฐ๋ฅ์ ์ผ๋ถ๋ฅผ ๋ณ๊ฒฝํ์ฌ ์ ์ด๋ฆ์ผ๋ก ๋ฑ๋กํ๊ฑฐ๋ ์๋ ๋ชจ๋์ ๊ต์ฒดํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์์ ๋ง์ ์์ฑ ๋ฉ๋ด๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
......
class CPBX_MYIVR extends CPBX_IVR
{
function __construct()
{
parent::__construct();
$this->_module = "myivr";
}
}
.....
$myIvrModule = new CPBX_MYIVR();
CPBXEngine::getInstance()->registerModule($myIvrModule,__DIR__); //ะะฐัะตะณะธัััะธัะพะฒะฐัั ะฝะพะฒัะน ะผะพะดัะปั
CPBXEngine::getInstance()->registerModuleExtension($myIvrModule,'ivr',__DIR__); //ะะพะดะผะตะฝะธัั ัััะตััะฒัััะธะน ะผะพะดัะปั
์ฒซ ๋ฒ์งธ ๋ณต์กํ ๊ตฌํ์ ์ฒซ ๋ฒ์งธ ์๋ถ์ฌ๊ณผ ์ฒซ ๋ฒ์งธ ์ค๋ง์ ๊ฐ์ ธ์์ต๋๋ค. ํจ๊ณผ๊ฐ ์์๊ณ ์ด๋ฏธ ์ฃผ์ ๊ธฐ๋ฅ์ ์ฌํํ ์ ์์ด์ ๊ธฐ๋ปค์ต๋๋ค. FreePBX. ์ฌ๋๋ค์ด ์ด ๊ณํ์ ์์ด๋์ด๋ฅผ ์ข์ํด์ ๊ธฐ๋ปค์ต๋๋ค. ๊ฐ๋ฐ์ ๋จ์ํํ ์ ์๋ ์ต์ ์ ์ฌ์ ํ โโ๋ง์์ง๋ง ๋น์์๋ ์ผ๋ถ ์์ ์ ์ด๋ฏธ ๋ ์ฌ์์ก์ต๋๋ค.
PBX ๊ตฌ์ฑ ๋ณ๊ฒฝ์ ์ํ API๋ ์ค๋ง์ค๋ฌ์ ์ต๋๋ค. ๊ฒฐ๊ณผ๋ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ๊ณผ ์ ํ ๋ฌ๋์ต๋๋ค. ๋๋ ์์์ ๊ฐ์ ์์น์ ์ทจํ๋ค. FreePBX, ์ ์ฉ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์ ์ฒด ๊ตฌ์ฑ์ด ๋ค์ ์์ฑ๋๊ณ ๋ชจ๋์ด ๋ค์ ์์๋ฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ๋ณด์ ๋๋ค.
*๋ค์ด์ผํ๋์ ํตํ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ท์น(์๊ณ ๋ฆฌ์ฆ)์
๋๋ค.
ํ์ง๋ง ์ด ์ต์
์ ์ฌ์ฉํ๋ฉด PBX ์ค์ ์ ๋ณ๊ฒฝํ๊ธฐ ์ํ ์ผ๋ฐ API๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๋จผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๋ ์์
์
๋๋ค. ๋ณํ ๋๋ฌด ๊ธธ๊ณ ๋ฆฌ์์ค ์ง์ฝ์ ์
๋๋ค.
๋์งธ, ๋ ํจ์๋ฅผ ๋์์ ํธ์ถํ ์ ์์ต๋๋ค. ๋ ๋ค ๊ตฌ์ฑ์ ์์ฑํฉ๋๋ค.
์
์งธ, ๊ด๋ฆฌ์๊ฐ ์ง์ ํ ์ค์ ์ ํฌํจํ ๋ชจ๋ ์ค์ ์ด ์ ์ฉ๋ฉ๋๋ค.
์ด ๋ฒ์ ์์๋ ๋ค์๊ณผ ๊ฐ์ด ์์ค์ฝ์ง์, ๋ณ๊ฒฝ๋ ๋ชจ๋๋ง ๊ตฌ์ฑ์ ์์ฑํ๊ณ ํ์ํ ๋ชจ๋๋ง ๋ค์ ์์ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ์ง๋ง ์ด๋ ๋ชจ๋ ์ ๋ฐ ์์ค์ ๋๋ค. ์ ๊ทผ๋ฐฉ์์ ๋ฐ๊พธ๋ ๊ฒ์ด ํ์ํ์ต๋๋ค.
๋ ๋ฒ์งธ ๋ฒ์ . ์ฝ๊ฐ ๋ฝํ์ ๊ผฌ๋ฆฌ๊ฐ ๋ถ์ด ์์
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์์ด๋์ด๋ ๊ตฌ์ฑ ๋ฐ ๋ฒํธ ๊ณํ์ ๋ค์ ๋ง๋๋ ๊ฒ์ด ์๋๋๋ค. ๋ณํ, ๊ทธ๋ฌ๋ ์ ๋ณด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ ํธ์ถ์ ์ฒ๋ฆฌํ๋ ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ง์ ์ฝ์ต๋๋ค. ๋ณํ ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ตฌ์ฑ์ ์ฝ๋ ๋ฐฉ๋ฒ์ ์ด๋ฏธ ์๊ณ ์์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ ๋ณ๊ฒฝํ๊ธฐ๋ง ํ๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ ๊ณ ๋ คํ์ฌ ๋ค์ ํธ์ถ์ด ์ฒ๋ฆฌ๋๋ฉฐ ์ด ๊ธฐ๋ฅ์ ๋ฒํธ ๊ณํ ๋งค๊ฐ ๋ณ์๋ฅผ ์ฝ๋ ๋ฐ ์๋ฒฝํ์ต๋๋ค. REALTIME_HASH.
๊ฒฐ๊ตญ ๋ค์ ์์ํ ํ์๋ ์์์ต๋๋ค. ๋ณํ ์ค์ ์ ๋ณ๊ฒฝํ๋ฉด ๋ชจ๋ ์ค์ ์ด ์ฆ์ ์ ์ฉ๋๊ธฐ ์์ํ์ต๋๋ค. ๋ณํ.
๋ค์ด์ผ ํ๋์ ๋ํ ์ ์ผํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ด์ ๋ฒํธ์ ํํธ. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์์ ๋ถ๋ถ์ ๋ณํ์์ต๋๋ค.
exten=>101,1,GoSub(โsub-callusersโ,s,1(1)); - ัะพัะตัะฝะพะต ะธะทะผะตะฝะตะฝะธะต, ะดะพะฑะฐะฒะปัะตััั/ะธะทะผะตะฝัะตััั ัะตัะตะท ami
; sub-callusers โ ัะฝะธะฒะตััะฐะปัะฝะฐั ััะฝะบัะธั ะณะตะฝะตัะธััั ะฟัะธ ัััะฐะฝะพะฒะบะต ะผะพะดัะปั.
[sub-callusers]
exten =>s,1,Noop()
exten =>s,n,Set(LOCAL(TOUSERID)=${ARG1})
exten =>s,n,ClearHash(TOUSERPARAM)
exten =>s,n,Set(HASH(TOUSERPARAM)=${REALTIME_HASH(rl_users,id,${LOCAL(TOUSERID)})})
exten =>s,n,GotoIf($["${HASH(TOUSERPARAM,id)}"=""]?return)
...
๋ค์์ ์ฌ์ฉํ์ฌ ๋ฒํธ ๊ณํ์์ ๋ผ์ธ์ ์ฝ๊ฒ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์๋ฏธ (์ ์ด ์ธํฐํ์ด์ค ๋ณํ) ์ ์ฒด ๋ค์ด์ผํ๋์ ์ฌ๋ถํ ํ ํ์๊ฐ ์์ต๋๋ค.
์ด๋ก์จ ๊ตฌ์ฑ API์ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ง์ ๊ฐ์ ์ ๊ทธ๋ฃน์ ์ถ๊ฐํ๊ฑฐ๋ ๊ทธ๋ฃน์ "์ ํ ์ ์ ์๊ฐ" ํ๋์ ์ ํ ์ ์ ์๊ฐ์ ๋ณ๊ฒฝํ ์๋ ์์ผ๋ฉฐ ๋ค์ ํตํ๋ ์ด๋ฏธ ์ง์ ๋ ์๊ฐ ๋์ ์ง์๋ฉ๋๋ค. ์ผ๋ถ API ์์ ์๋ ์์ ์ด ํ์ํ๋ฏ๋ก ์์ ์๋ฏธ ์ ํ).
์ฒซ ๋ฒ์งธ ์ด๋ ค์ด ๊ตฌํ์ ๋ค์ ์ฒซ ๋ฒ์งธ ์๋ถ์ฌ๊ณผ ์ค๋ง์ ๊ฐ์ ธ์์ต๋๋ค. ํจ๊ณผ๊ฐ ์์ด์ ๊ธฐ๋ปค์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ค์ํ ๋งํฌ๊ฐ ๋์๊ณ ๋์คํฌ์ ๋ํ ์์กด๋๊ฐ ๋์์ก์ผ๋ฉฐ ์ํ๋ ๋ ์ปค์ก์ง๋ง ๋ชจ๋ ๊ฒ์ด ๋ฌธ์ ์์ด ์์ ์ ์ผ๋ก ์๋ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ด์ ์น ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ํํ ์ ์๋ ๋ชจ๋ ์์ ์ API๋ฅผ ํตํด ์ํํ ์ ์์ผ๋ฉฐ ๋์ผํ ๋ฐฉ๋ฒ์ด ์ฌ์ฉ๋์๋ค๋ ๊ฒ์ ๋๋ค. ๋ํ ์น ์ธํฐํ์ด์ค์์๋ ๊ด๋ฆฌ์๊ฐ ์์ฃผ ์์ด๋ฒ๋ฆฐ "PBX์ ์ค์ ์ ์ฉ" ๋ฒํผ์ด ์ ๊ฑฐ๋์์ต๋๋ค.
์ค๋ง์ค๋ฌ์ด ์ ์ ๊ฐ๋ฐ์ด ๋์ฑ ๋ณต์กํด์ก๋ค๋ ๊ฒ์ ๋๋ค. ์ฒซ ๋ฒ์งธ ๋ฒ์ ๋ถํฐ PHP ์ธ์ด๋ ์ธ์ด๋ก ๋ฒํธ ๊ณํ์ ์์ฑํ์ต๋๋ค. ๋ณํ ์์ ํ ์ฝ์ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ณ ์ธ์ด ์์ฒด๋ ๋ณํ ๋ฒํธ ๊ณํ์ ์์ฑํ๋ ๊ฒ์ ๋งค์ฐ ์์์ ์ ๋๋ค.
๊ทธ ๋ชจ์ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$usersInitSection = $dialplan->createExtSection('usersinit-sub','s');
$usersInitSection
->add('',new Dialplanext_gotoif('$["${G_USERINIT}"="1"]','exit'))
->add('',new Dialplanext_set('G_USERINIT','1'))
->add('',new Dialplanext_gosub('1','s','sub-AddOnAnswerSub','usersconnected-sub'))
->add('',new Dialplanext_gosub('1','s','sub-AddOnPredoDialSub','usersinitondial-sub'))
->add('',new Dialplanext_set('LOCAL(TECH)','${CUT(CHANNEL(name),/,1)}'))
->add('',new Dialplanext_gotoif('$["${LOCAL(TECH)}"="SIP"]','sipdev'))
->add('',new Dialplanext_gotoif('$["${LOCAL(TECH)}"="PJSIP"]','pjsipdev'))
๋ ๋ฒ์งธ ๋ฒ์ ์์๋ ๋ฒํธ ๊ณํ์ด ๋ณดํธํ๋์์ผ๋ฉฐ ๋งค๊ฐ๋ณ์์ ๋ฐ๋ผ ๊ฐ๋ฅํ ๋ชจ๋ ์ฒ๋ฆฌ ์ต์ ์ด ํฌํจ๋์์ผ๋ฉฐ ํฌ๊ธฐ๊ฐ ํฌ๊ฒ ๋์ด๋ฌ์ต๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ด ๊ฐ๋ฐ ์๊ฐ์ ํฌ๊ฒ ์ง์ฐ์์ผฐ๊ณ , ๋ค์ ํ ๋ฒ ๋ฒํธ ๊ณํ์ ๋ฐฉํดํด์ผ ํ๋ค๋ ์๊ฐ ์์ฒด๊ฐ ๋๋ฅผ ์ฌํ๊ฒ ํ์ต๋๋ค.
์ธ ๋ฒ์งธ ๋ฒ์
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์์ด๋์ด๋ ์์ฑํ๋ ๊ฒ์ด ์๋์์ต๋๋ค. ๋ณํ PHP์์ ๋ค์ด์ผ ํ๋์ ์ฌ์ฉํ๊ณ ์ฌ์ฉ FastAGI PHP ์์ฒด์์ ๋ชจ๋ ์ฒ๋ฆฌ ๊ท์น์ ์์ฑํฉ๋๋ค. FastAGI ๊ทธ๊ฒ์ ์ ์์ต๋๋ค ๋ณํ, ํธ์ถ์ ์ฒ๋ฆฌํ๋ ค๋ฉด ์์ผ์ ์ฐ๊ฒฐํ์ธ์. ๊ฑฐ๊ธฐ์์ ๋ช ๋ น์ ๋ฐ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ ๋๋ค. ๋ฐ๋ผ์ ๋ฒํธ ๊ณํ์ ๋ ผ๋ฆฌ๋ ์ด๋ฏธ ๊ฒฝ๊ณ๋ฅผ ๋ฒ์ด๋ฌ์ต๋๋ค. ๋ณํ ์ด๋ค ์ธ์ด๋ก๋ ์์ฑํ ์ ์์ต๋๋ค. ์ ๊ฒฝ์ฐ์๋ PHP๋ก ์์ฑํ์ต๋๋ค.
๋ง์ ์ํ์ฐฉ์ค๊ฐ ์์์ต๋๋ค. ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ์ด๋ฏธ ๋ง์ ํด๋์ค/ํ์ผ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์ด๊ธฐํํ๊ณ ์๋ก ๋ฑ๋กํ๋ ๋ฐ ์ฝ 1,5์ด๊ฐ ์์๋์์ผ๋ฉฐ ํธ์ถ๋น ์ง์ฐ์ ๋ฌด์ํ ์ ์๋ ์์ค์ ๋๋ค.
์ด๊ธฐํ๋ ํ ๋ฒ๋ง ๋ฐ์ํด์ผ ํ๋ฏ๋ก ์๋ฃจ์ ๊ฒ์์ ๋ค์์ ์ฌ์ฉํ์ฌ PHP๋ก ์๋น์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ผ๋ก ์์๋์์ต๋๋ค. Pthread. ์ผ์ฃผ์ผ ๊ฐ์ ์คํ ํ์ ์ด ํ์ฅ ๊ธฐ๋ฅ์ ์๋ ๋ฐฉ์์ด ๋ณต์กํ๊ธฐ ๋๋ฌธ์ ์ด ์ต์ ์ ๋ณด๋ฅ๋์์ต๋๋ค. ํ ๋ฌ ๊ฐ์ ํ ์คํธ ํ์ ์ ๋ PHP์ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ๋ ํฌ๊ธฐํด์ผ ํ์ต๋๋ค. PHP ์ด๋ณด์์๊ฒ ๊ฐ๋จํ๊ณ ์น์ํ ๊ฒ์ด ํ์ํ์ผ๋ฉฐ ๋ง์ PHP ํ์ฅ์ ๋๊ธฐ์์ ๋๋ค.
ํด๊ฒฐ์ฑ ์ ๋ค์๊ณผ ๊ฐ์ด ์ปดํ์ผ๋ C์ ์์ฒด ๋ฉํฐ์ค๋ ๋ ์๋น์ค์์ต๋๋ค. PHPLIB. ๋ชจ๋ ATS PHP ํ์ผ์ ๋ก๋ํ๊ณ , ๋ชจ๋ ๋ชจ๋์ด ์ด๊ธฐํ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๊ณ , ์๋ก ์ฝ๋ฐฑ์ ์ถ๊ฐํ๊ณ , ๋ชจ๋ ๊ฒ์ด ์ค๋น๋๋ฉด ์บ์ํฉ๋๋ค. ๋ฌธ์ํ์ค ๋ FastAGI ์คํธ๋ฆผ์ด ์์ฑ๋๊ณ ๋ชจ๋ ํด๋์ค์ ๋ฐ์ดํฐ์ ์บ์ ์ฌ๋ณธ์ด ์ฌ๊ธฐ์ ์ฌ์์ฐ๋๋ฉฐ ์์ฒญ์ด php ํจ์๋ก ์ ๋ฌ๋ฉ๋๋ค.
์ด ์๋ฃจ์ ์ ์ฌ์ฉํ๋ฉด ์๋น์ค ํธ์ถ์ ๋ณด๋ธ ํ ์ฒซ ๋ฒ์งธ ๋ช ๋ น๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ๋ณํ 1,5์ด์์ 0,05์ด๋ก ์ค์ด๋ค์๊ณ ์ด ์๊ฐ์ ํ๋ก์ ํธ ๊ท๋ชจ์ ๋ฐ๋ผ ์กฐ๊ธ์ฉ ๋ฌ๋ผ์ง๋๋ค.
๊ทธ ๊ฒฐ๊ณผ ๋ค์ด์ผํ๋ ๊ฐ๋ฐ ์๊ฐ์ด ๋ํญ ์ค์ด๋ค์๊ณ , ๋ชจ๋ ๋ชจ๋์ ๋ค์ด์ผํ๋ ์ ์ฒด๋ฅผ PHP๋ก ๋ค์ ์์ฑํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฌํ ๋ฐ๋ฆ์ ๋๋ค. ์ฒซ์งธ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ฐ์ฒด๋ฅผ ์ป๊ธฐ ์ํด ๋ฉ์๋๊ฐ ์ด๋ฏธ PHP๋ก ์์ฑ๋์ด ์์ด์ผ ํ๋ฉฐ ์น ์ธํฐํ์ด์ค์ ํ์ํ๋ ๋ฐ ํ์ํ๊ณ ๋ ๋ฒ์งธ๋ก ์ด๊ฒ์ด ๊ฐ์ฅ ์ค์ํ๋ฉฐ ๋ง์นจ๋ด ์ซ์์ ๋ฐฐ์ด์ด ํฌํจ๋ ๋ฌธ์์ด๋ก ํธ๋ฆฌํ๊ฒ ์์ ํ ์ ์๊ฒ ๋์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ง์ PHP ํ์ฅ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ต๋๋ค.
๋ชจ๋ ํด๋์ค์์ ๋ฒํธ ๊ณํ์ ์ฒ๋ฆฌํ๋ ค๋ฉด ๋ค์ ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํฉ๋๋ค. ๋ค์ด์ผํ๋๋์ ํตํ ๊ทธ๋ฆฌ๊ณ ๋ ผ์ pbxCall์์ฒญ ์ํธ์์ฉํ ๊ฐ์ฒด๋ฅผ ํฌํจํฉ๋๋ค. ๋ณํ.
๋ํ, ๋ค์ด์ผํ๋ ๋๋ฒ๊น ์ด ๊ฐ๋ฅํด์ก์ต๋๋ค(php์๋ xdebug๊ฐ ์๊ณ ์ฐ๋ฆฌ ์๋น์ค์ ์๋ํฉ๋๋ค). ๋ณ์ ๊ฐ์ ๋ณด๋ฉด์ ๋จ๊ณ๋ณ๋ก ์ด๋ํ ์ ์์ต๋๋ค.
ํตํ ๋ฐ์ดํฐ
๋ชจ๋ ๋ถ์๊ณผ ๋ณด๊ณ ์์๋ ์ ํํ๊ฒ ์์ง๋ ๋ฐ์ดํฐ๊ฐ ํ์ํ๋ฉฐ, ์ด PBX ๋ธ๋ก ์ญ์ ์ฒซ ๋ฒ์งธ ๋ฒ์ ๋ถํฐ ์ธ ๋ฒ์งธ ๋ฒ์ ๊น์ง ๋ง์ ์ํ์ฐฉ์ค๋ฅผ ๊ฑฐ์ณค์ต๋๋ค. ํตํ ๋ฐ์ดํฐ๊ฐ ์ ํธ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ํ ๋ฒ์ ํตํ = ํ ๋ฒ์ ๋ น์: ๋๊ฐ ์ ํํ๋์ง, ๋๊ฐ ์๋ตํ๋์ง, ํตํ ์๊ฐ. ๋ ํฅ๋ฏธ๋ก์ด ์ต์ ์๋ ํตํ ์ค์ ์ด๋ค PBX ์ง์์ด ์ ํ๋ฅผ ๋ฐ์๋์ง ๋ํ๋ด๋ ์ถ๊ฐ ํ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋ชจ๋ ๊ฒ์ ์๊ตฌ ์ฌํญ์ ์ผ๋ถ๋ง์ ๋ค๋ฃจ๊ณ ์์ต๋๋ค.
์ด๊ธฐ ์๊ตฌ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- PBX์์ ์ ํํ ์ฌ๋๋ฟ๋ง ์๋๋ผ ์๋ตํ ์ฌ๋๋ ์ ์ฅํ์ธ์. ๊ฐ๋ก์ฑ๊ธฐ๊ฐ ์์ผ๋ฏ๋ก ํตํ๋ฅผ ๋ถ์ํ ๋ ์ด๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
- ์ง์๊ณผ ์ฐ๊ฒฐ๋๊ธฐ ์ ์ ์๊ฐ. ~ ์์ FreePBX ์ผ๋ถ ๋ค๋ฅธ PBX์ ๊ฒฝ์ฐ PBX๊ฐ ์ ํ๋ฅผ ๋ฐ๋ ์ฆ์ ์ ํ์ ์๋ตํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ํ์ง๋ง ์์ฑ ๋ฉ๋ด์ ๊ฒฝ์ฐ ์ด๋ฏธ ์ ํ๋ฅผ ๋ฐ์์ผ ํ๋ฏ๋ก ๋ชจ๋ ์ ํ์ ์๋ตํ๊ณ ์๋ต ๋๊ธฐ ์๊ฐ์ 0~1์ด๊ฐ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์๋ต ์ ์๊ฐ๋ฟ๋ง ์๋๋ผ ์ฃผ์ ๋ชจ๋(๋ชจ๋ ์์ฒด์์ ์ด ํ๋๊ทธ๋ฅผ ์ค์ ํฉ๋๋ค. ํ์ฌ๋ "์ง์", "์ธ๋ถ ํ์ ")๊ณผ ์ฐ๊ฒฐ๋๊ธฐ ์ ์ ์๊ฐ์ ์ ์ฝํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
- ๋ ๋ณต์กํ ๋ฒํธ ๊ณํ์ ๊ฒฝ์ฐ ํธ์ถ์ด ์๋ก ๋ค๋ฅธ ๊ทธ๋ฃน ๊ฐ์ ์ด๋ํ ๋ ๊ฐ ์์๋ฅผ ๋ณ๋๋ก ๊ฒ์ฌํ ์ ์์ด์ผ ํ์ต๋๋ค.
๊ฐ์ฅ ์ข์ ์ต์ ์ PBX ๋ชจ๋์ด ํตํ ์ ์์ ์ ๋ํ ์ ๋ณด๋ฅผ ๋ณด๋ด๊ณ ๊ถ๊ทน์ ์ผ๋ก ์ ๋ณด๋ฅผ ํธ๋ฆฌ ํ์์ผ๋ก ์ ์ฅํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฒซ์งธ, ํตํ์ ๋ํ ์ผ๋ฐ ์ ๋ณด์ ๋๋ค(๋ค๋ฅธ ๋ชจ๋ ์ฌ๋๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํน๋ณํ ๋ด์ฉ์ ์์).
- ์ธ๋ถ์ ์ผ๋ก ์ ํ๊ฐ ์์ต๋๋ค."๋ฐ์ฃฝ์ ๊ฒฝ์ฐ"05:55:52์ 89295671458์์ 89999999999๊น์ง, ๊ฒฐ๊ตญ ์ง์์ด ๋ต๋ณํ์ต๋๋ค."๋น์2ยป ๋ฒํธ 104. ๋ด๋ด์๋ 60์ด๋ฅผ ๊ธฐ๋ค๋ ธ๋ค๊ฐ 36์ด ๋์ ๋งํ์ต๋๋ค.
- ์ง์ "๋น์2"112์ ์ ํํ๋ ์ง์์ด ๋ฐ๋ค์"๊ด๋ฆฌ์1ยป 8์ด ํ. ๊ทธ๋ค์ 14์ด ๋์ ์ด์ผ๊ธฐํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ๋ ์ง์์๊ฒ "๊ด๋ฆฌ์1" ๊ทธ๋ค์ 13์ด ๋์ ๊ณ์ํด์ ์ด์ผ๊ธฐ๋ฅผ ๋๋ด์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋น์ฐ์ ์ผ๊ฐ์ด๋ฉฐ ๊ฐ ๊ธฐ๋ก์ ๋ํด PBX๋ฅผ ํตํด ์์ธํ ํตํ ๋ด์ญ์ ์ป์ ์ ์์ต๋๋ค.
๋ชจ๋ ์ ๋ณด๋ ํธ์ถ์ ์ค์ฒฉ์ผ๋ก ํ์๋ฉ๋๋ค.
- ์ธ๋ถ์ ์ผ๋ก ์ ํ๊ฐ ์์ต๋๋ค."๋ฐ์ฃฝ์ ๊ฒฝ์ฐยป 05:55:52์ ์ซ์ 89295671458์์ ์ซ์ 89999999999๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
- 05:55:53์ ์ธ๋ถ ํ์ ์ด ์์ ํ๋ก์ ํธ์ถ์ ๋ณด๋ ๋๋ค."testยป
- ๊ตฌ์ฑํ์ ๋ฐ๋ผ ํตํ๋ฅผ ์ฒ๋ฆฌํ ๋ ๋ชจ๋์ โ๋งค๋์ ์ ํ", ํตํ ์๊ฐ์ 16์ด์ ๋๋ค. ํด๋ผ์ด์ธํธ๋ฅผ ์ํด ๊ฐ๋ฐ๋ ๋ชจ๋์ ๋๋ค.
- ๋ชจ๋ "๋งค๋์ ์ ํ" ํด๋น ๋ฒํธ๋ฅผ ๋ด๋นํ๋ ์ง์(๊ณ ๊ฐ)์๊ฒ ์ ํ๋ฅผ ๋ณด๋ ๋๋ค. "๊ด๋ฆฌ์1โ๋ผ๊ณ ๋งํ๊ณ 5์ด ๋์ ์๋ต์ ๊ธฐ๋ค๋ฆฝ๋๋ค. ๋งค๋์ ๋ ๋๋ตํ์ง ์์๋ค.
- ๋ชจ๋ "๋งค๋์ ์ ํ"๊ทธ๋ฃน์ ์ ํ๋ฅผ ๋ณด๋ ๋๋ค."CORP ๊ด๋ฆฌ์" ์ด๋ค์ ๊ฐ์ ๋ฐฉํฅ(๊ฐ์ ๋ฐฉ์ ์์)์ ๋ค๋ฅธ ๋งค๋์ ๋ค๋ก, 11์ด ๋์ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค.
- ๊ทธ๋ฃน "CORP ๊ด๋ฆฌ์"์ง์์๊ฒ ์ ํํด์"๊ด๋ฆฌ์1, ๊ด๋ฆฌ์2, ๊ด๋ฆฌ์3"๋์์ 11์ด ๋์. ๋๋ต์ด ์์ต๋๋ค.
- ๊ด๋ฆฌ์์ ํตํ๊ฐ ์ข ๋ฃ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋ก๋ ๋ชจ๋์ ํธ์ถ์ ๋ณด๋ ๋๋ค."1c์์ ๊ฒฝ๋ก ์ ํ" ๋ํ ํด๋ผ์ด์ธํธ๋ฅผ ์ํด ์์ฑ๋ ๋ชจ๋์ ๋๋ค. ์ฌ๊ธฐ์ ํตํ๋ 0์ด ๋์ ์ฒ๋ฆฌ๋์์ต๋๋ค.
- ํ๋ก๋ ์์ฑ ๋ฉ๋ด "์ ํธ์ถ์ ๋ณด๋ ๋๋ค.์ถ๊ฐ ๋ค์ด์ผ๋ง์ด ํฌํจ๋ ๊ธฐ๋ณธ" ํด๋ผ์ด์ธํธ๋ 31์ด ๋์ ๊ทธ๊ณณ์์ ๊ธฐ๋ค๋ ธ๊ณ ์ถ๊ฐ ์ ํ ๊ฑธ๊ธฐ๋ ์์์ต๋๋ค.
- ์ด ๊ตฌ์ฑํ๋ ๊ทธ๋ฃน "์ ์ ํ๋ฅผ ๋ณด๋ ๋๋ค.๋น์", ํด๋ผ์ด์ธํธ๋ 12์ด ๋์ ๊ธฐ๋ค๋ ธ์ต๋๋ค.
- ๊ทธ๋ฃน์์๋ ์ง์ 2๋ช ์ด ๋์์ ํธ์ถ๋ฉ๋๋ค."๋น์1"๊ทธ๋ฆฌ๊ณ "๋น์2" ๊ทธ๋ฆฌ๊ณ 12์ด ํ์ ์ง์์ด ๋๋ตํฉ๋๋ค. "๋น์2" ํตํ์ ๋ํ ์๋ต์ ํ๋ถ๋ชจ ํตํ์ ๋ณต์ ๋ฉ๋๋ค. ๊ทธ ๊ทธ๋ฃน์์ ๊ทธ๋ โ๋น์2", ํ์ ์ ์ ํ๋ฅผ ๊ฑธ ๋ "๋น์2"๋ผ๊ณ ๋งํ๊ณ ์ธ๋ถ์ ์ผ๋ก ๊ฑธ๋ ค์จ ์ ํ์ "๋น์2".
๊ฐ๋จํ ๋ณด๊ณ ์๋ฅผ ์์ฑํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฒ์ ๊ฐ ์์ ๋ฐ ์ค์ฒฉ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๊ฒ์ ๋๋ค. ์์ฑ ๋ฉ๋ด์ ๋ํ ๋ณด๊ณ ์๋ ๊ทธ๊ฒ์ด ์ผ๋ง๋ ๋์์ด ๋๋์ง ๋ฐฉํด๊ฐ ๋๋์ง ์์๋ด๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ์ง์์ด ๋์น ์ ํ์ ๋ํ ๋ณด๊ณ ์๋ฅผ ์์ฑํฉ๋๋ค. ํตํ๊ฐ ์ฐจ๋จ๋์์ผ๋ฏ๋ก ๋ถ์ฌ์ค์ผ๋ก ๊ฐ์ฃผ๋์ง ์๋๋ค๋ ์ , ๊ทธ๋ฃน ํตํ์๊ณ ๋ค๋ฅธ ์ฌ๋์ด ๋ ์ผ์ฐ ์๋ตํ๋ค๋ ์ , ์ฆ ํตํ๋ ๋์น ์ํ๊ฐ ์๋๋ผ๋ ์ ์ ๊ณ ๋ คํฉ๋๋ค.
์ด๋ฌํ ์ ๋ณด ์ ์ฅ์ ํตํด ๊ฐ ๊ทธ๋ฃน์ ๊ฐ๋ณ์ ์ผ๋ก ๊ฐ์ ธ์ ์ผ๋ง๋ ํจ๊ณผ์ ์ผ๋ก ์๋ํ๋์ง ํ๋จํ๊ณ ์๊ฐ๋ณ๋ก ์๋ตํ ๊ทธ๋ฃน๊ณผ ๋์น ๊ทธ๋ฃน์ ๊ทธ๋ํ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ๋ํ, ๊ด๋ฆฌ์ ์ฐ๊ฒฐ ํ ์ด์ฒด ๋ด์ญ์ ๋ถ์ํ์ฌ ๋ด๋น ๊ด๋ฆฌ์์์ ์ฐ๊ฒฐ์ด ์ผ๋ง๋ ์ ํํ์ง ํ์ธํ ์๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ๋ฒํธ๊ฐ ์ฌ๋ฐ๋ฅธ ๋ด์ ๋ฒํธ๋ก ์ ํ๋ฅผ ๊ฑฐ๋ ๋น๋๋ ๋ฐ์ ์ ํ์ ๋ช ํผ์ผํธ๊ฐ ํด๋ํฐ์ผ๋ก ์ ๋ฌ๋๋์ง ๋ฑ ๋งค์ฐ ์ด๋ก์ ์ธ ์ฐ๊ตฌ๋ฅผ ์ํํ ์๋ ์์ต๋๋ค.
๊ฒฐ๊ณผ๋ ์ด๋ป์ต๋๊น?
PBX๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ ๋ฐ ์ ๋ฌธ๊ฐ๊ฐ ํ์ํ์ง ์์ผ๋ฉฐ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๊ด๋ฆฌ์๊ฐ ์ํํ ์ ์์ต๋๋ค. ์ค์ ๋ก ํ ์คํธ๋ฅผ ๊ฑฐ์ณค์ต๋๋ค.
์์ ์๋ ์ฌ๊ฐํ ์๊ฒฉ์ ๊ฐ์ถ ์ ๋ฌธ๊ฐ๊ฐ ํ์ํ์ง ์์ผ๋ฉฐ PHP์ ๋ํ ์ง์์ด๋ฉด ์ถฉ๋ถํฉ๋๋ค. SIP ํ๋กํ ์ฝ, ๋๊ธฐ์ด, ์ง์ ํธ์ถ ๋ฐ ๊ธฐํ ๋ชจ๋์ ์ํ ๋ชจ๋์ด ์ด๋ฏธ ์์ฑ๋์์ต๋๋ค. ๋ํผ ํด๋์ค๊ฐ ์์ต๋๋ค. ๋ณํ. ๋ชจ๋์ ๊ฐ๋ฐํ๊ธฐ ์ํด ํ๋ก๊ทธ๋๋จธ๋ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ๋ชจ๋์ ํธ์ถํ ์ ์์ต๋๋ค(๊ทธ๋ฆฌ๊ณ ์ข์ ๋ฐฉ๋ฒ์ผ๋ก ํธ์ถํด์ผ ํฉ๋๋ค). ๊ทธ๋ฆฌ๊ณ ์ง์ ๋ณํ ํด๋ผ์ด์ธํธ๊ฐ ์๋ก์ด ๋ณด๊ณ ์๊ฐ ํฌํจ๋ ํ์ด์ง๋ฅผ ์ถ๊ฐํ๋๋ก ์์ฒญํ๋ ๊ฒฝ์ฐ ์ ํ ํ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ค์ต์ ๋ฐ๋ฅด๋ฉด ์ XNUMX์ ํ๋ก๊ทธ๋๋จธ๋ ๋์ฒํ ์ ์์ง๋ง ๋ฌธ์ํ ๋ฐ ์ผ๋ฐ์ ์ธ ๋๊ธ ์ ์ฉ์ด ์์ผ๋ฉด ๋ถ์๊ฐ์ ๋๋ผ๋ฏ๋ก ์ฌ์ ํ ๊ฐ์ ์ ์ฌ์ง๊ฐ ์์ต๋๋ค.
๋ชจ๋์ ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
- ์๋ก์ด ํตํ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ์์ฑํ๊ณ ,
- ์น ์ธํฐํ์ด์ค์ ์ ๋ธ๋ก์ ์ถ๊ฐํ๊ณ ,
- ๊ธฐ์กด ๋ชจ๋ ์ค ํ๋๋ฅผ ์์ํ๊ฑฐ๋, ๊ธฐ๋ฅ์ ์ฌ์ ์ํ๊ณ ๊ต์ฒดํ๊ฑฐ๋, ๋จ์ํ ์ฝ๊ฐ ์์ ๋ ๋ณต์ฌ๋ณธ์ด ๋์ญ์์ค.
- ๋ค๋ฅธ ๋ชจ๋ ๋ฑ์ ์ค์ ํ ํ๋ฆฟ์ ์ค์ ์ ์ถ๊ฐํ์ธ์.
API๋ฅผ ํตํ PBX ์ค์ . ์์์ ์ค๋ช ํ ๊ฒ์ฒ๋ผ ๋ชจ๋ ์ค์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋์ด ํธ์ถ ์ ์ฝ์ด์ค๊ธฐ ๋๋ฌธ์ API๋ฅผ ํตํด ๋ชจ๋ PBX ์ค์ ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. API๋ฅผ ํธ์ถํ๋ฉด ๊ตฌ์ฑ์ด ๋ค์ ์์ฑ๋์ง ์๊ณ ๋ชจ๋์ด ๋ค์ ์์๋์ง ์์ผ๋ฏ๋ก ์ค์ ์์ ์ง์ ์๋ ์ค์ํ์ง ์์ต๋๋ค. API ์์ฒญ์ ๋น ๋ฅด๊ฒ ์คํ๋๋ฉฐ ์๋ก๋ฅผ ์ฐจ๋จํ์ง ์์ต๋๋ค.
PBX๋ ํตํ ์๊ฐ(๋๊ธฐ/๋ํ), ์ค์ฒฉ ๋ฐ PBX ์ฉ์ด(์ฑ๋, ๋ฒํธ๊ฐ ์๋ ์ง์, ๊ทธ๋ฃน, ์ธ๋ถ ํ์ )๋ก ๋ชจ๋ ์ฃผ์ ์์ ์ ์ ์ฅํฉ๋๋ค. ์ด๋ฅผ ํตํด ํน์ ํด๋ผ์ด์ธํธ์ ๋ํ ๋ค์ํ ๋ณด๊ณ ์๋ฅผ ์์ฑํ ์ ์์ผ๋ฉฐ ๋๋ถ๋ถ์ ์์ ์ ์ฌ์ฉ์ ์นํ์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋๋ ๊ฒ์ ๋๋ค.
๋ค์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ์ง๋ ์๊ฐ์ด ๋งํด ์ค ๊ฒ์ ๋๋ค. ์์ง ์์ ํด์ผ ํ ๋์์ค๊ฐ ๋ง๊ณ ๊ณํ๋ ๋ง์ง๋ง ์ธ ๋ฒ์งธ ๋ฒ์ ์ ๋ง๋ ์ง 3๋ ์ด ์ง๋ฌ๊ณ ์ด๋ฏธ ์์ด๋์ด๊ฐ ํจ๊ณผ๊ฐ ์๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ๋ฒ์ 3์ ๊ฐ์ฅ ํฐ ๋จ์ ์ ํ๋์จ์ด ๋ฆฌ์์ค์ด์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ๊ฐ๋ฐ ์ฉ์ด์ฑ์ ์ํด ๋น์ฉ์ ์ง๋ถํด์ผ ํฉ๋๋ค.
์ถ์ฒ : habr.com