럭시스 IP-PBX 연동 SDK 설명서 Windows DLL SDK ver. 1.1 주식회사럭시스 http://www.luxsys.net 1600-5998
목차 1. SDK Package 구성 2. 설치 3. API 소스설명 luxsys_dial_number 전화통화방식 : (Click-to-Dial 하고 Power/Multi-Dialer 기능 ) luxsys_transfer 바로넘겨주기 / 돌려주기기능 : (Blind Transfer) luxsys_cti CTI 기능 luxsys_dnd 상담원별수신거부설정 ( 로그인 / 로그아웃 / 후처리 / 휴식시간 / 식사시간 ) luxsys_dnd_state 업무용상담원상태를실시간에확인하는기능 ( 후처리, 휴식시간, 식사중, DND 수신거부 ) luxsys_blf_state 단말기실시간상태확인 (BLF/SLA 상태 ) luxsys_acd_state 수신링그룹상태확인 luxsys_hangup 전화끊기 (Hangup) luxsys_get_status 로밍 / 착신전환번호확인 luxsys_set_recording 녹취방법설정 / 변경 luxsys_roaming 로밍기능 ( 가상내선번호설정 / 변경 ) 2
luxsys_cf 착신전환설정 luxsys_pbx_status PBX 상태확인 luxsys_test SDK 테스트루팅 3
SDK Package 구성 SDK 기술라이센스 : license.txt SDK 설명서 : readme.txt 4
설치 Windows 컴퓨터에 sdksetup.exe 프로그렘을설치하면 SDK 프로그렘이자동으로설치가됩니다. Silent 설치방법을이용하면 sdksetup.exe 를안보이게설치할수있습니다. sdksetup.exe /silent sdksetup.exe /verysilent 5
luxsys.dll API 사용방법 전화통화방식 : (Click-to-Dial 하고 Power/Multi-Dialer 기능 ) ------------------------------------------------ luxsys_dial_number (Len(serverip), serverip,len(extension),extension,len(dialnumber),dialnumber) 1) 서버 : 럭시스 IP PBX 의아이피주소 ( 도메인 ) 2) 내선 :- 사용자의단말내선번호입니다. 외부발신전화가이내선번호로연결됩니다. - Click2Dial 기능 E-CRM 하고연결되고있는기능입니다.AMP 만아니고꼭 E-CRM 에서설정되야합니다. - 사용하기전에, E-CRM 프로그램에들어가서사용자관리창에서계정을만들어서 < 내선 1.> 선택하고저장눌으면설정이됩니다. - 사용자관리창에서내선번호를선댁할수있는 4 가지옵션이있지만, 전화발신할데는 < 내선 1.> 만사용하게됩니다. 남어지세팅은 CTI 기능에서사용합니다. - < 내선 1.> 를세팅할데중복으로설정되지않도록해야됩니다. < 내선 1.> 을한계정에서만세팅해야됩니다. 3) " 거는번호 ": 외부발신 : pbx_state = luxsys_dial_number('192.168.2.95','3000','0234392400') pbx_state = luxsys_dial_number('192.168.2.95','3000','0234392400,01022240074') ' 멀티다이얼기능, 여러번호로동시에걸기. 내선걸기 : pbx_state = luxsys_dial_number('192.168.2.95','3000','3001') Return 결과값 : 0: 오류 ( 실패 ) PBX 작동하지않습니다. 1: 성공 6
Visual Basic 샘플 : Public Class Form1 Public Declare Function luxsys_dial_number Lib "luxsys.dll" Alias "luxsys_dial_number" (ByVal s1 As Integer, ByVal server As String, ByVal s2 As Integer,_ ByVal exten As String, ByVal s3 As Integer, ByVal exten2 As String) As Long Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim pbx_state As Long pbx_state = luxsys_dial_number(len("192.168.2.95"), "192.168.2.95", Len("3000"), "3000", Len(xphone.Text), xphone.text) End Sub End Class 7
바로넘겨주기 / 돌려주기기능 : (Blind Transfer) ------------------------------------------------ luxsys_transfer (Len(serverip), serverip,len(extension),extension,len(dialnumber),dialnumber) 1) 서버 : 럭시스 IP PBX 의아이피주소 ( 도메인 ) 2) 통화중인내선번호 :- 사용자의단말내선번호입니다. - Transfer 기능이 E-CRM 하고연결되고있는기능입니다. AMP 만아니고꼭 E-CRM 에서설정되야합니다. - 사용하기전에, E-CRM 프로그램에들어가서사용자관리창에서계정을만들어서 < 내선 1.> 선택하고저장눌으면설정이됩니다. - 사용자관리창에서내선번호를선댁할수있는 4 가지옵션이있지만, 전화발신할데는 < 내선 1.> 만사용하게됩니다. 남어지세팅은 CTI 기능에서사용합니다. - < 내선 1.> 를세팅할데중복으로설정되지않도록해야됩니다. < 내선 1.> 을한계정에서만세팅해야됩니다. 3) " 연결할번호 ": 내선번호나외부발신번호. luxsys_transfer(" 녹취서버아이피 ", " 통화중인내선번호 ", " 연결할번호 ") 외부로넘겨주기 : luxsys_transfer('192.168.2.95','4500','01022240000') 내부내선으로넘겨주기 : luxsys_transfer('192.168.2.95','4500','4501') Visual Basic 샘플 : Public Class Form1 Public Declare Function luxsys_transfer Lib "luxsys.dll" Alias "luxsys_transfer" (ByVal s1 As Integer, ByVal server As String, ByVal s2 As Integer,_ ByVal exten As String, ByVal s3 As Integer, ByVal exten2 As String) As Long Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim hmod As Long hmod = luxsys_transfer(len("192.168.2.95"), "192.168.2.95", Len("3000"), "3000", Len(xphone.Text), xphone.text) End Sub End Class 8
CTI 기능 : ------------------------------------------------ DWORD luxsys_cti(len(serverip), serverip,len(extension),extension,len(cid),cid,len(cidname),cidname,len(sess),sess,len(dnid),dnid, blf) 1) 서버 : 럭시스 IP PBX 의아이피주소 ( 도메인 ) 2) extension, 상담원내선번호입니다. 3) cid 값 : 들어온발신자자표시 ( 고객전화번호 ) 4) cidname 값 : 발신자표시이름 ( 내선통화시사용 ) 5) sess 값 : 유니크키, 펍압 1 번하고펍압 2 번구별하기위해서사용. 6) dnid 값 : 수신 DID 번호. 7) blf 값 : 단말기상태 ( 결과코드는 luxsys_blf_state 하고동일합니다.) return : DWORD: 결과코드 result = luxsys_cti("192.168.2.95","3000",cid,cidname,sess,dnid); result = 0, 전화온경우없음 result = 1, 수신전화들어온경우 cid 팔신자번호 (CID POPUP 창 ) result = 2, 수신전화를받았스빈다, 발신전화 ( 고객정보검색 ) result = 3, 오류발생 : 서버하고연결실폐 사용방법 : 프로그램에서메인창에서 Timer Event 를등럭하고 (Timer interrupt 1 초 ) Event 발생할데마다 luxsys_cti cid 하고 result 값을확인 9
Visual Basic 샘플소스 : Public Class Form1 Public Declare Function luxsys_cti Lib "luxsys.dll" Alias "luxsys_cti" (ByVal s1 As Integer, ByVal server As String, ByVal s2 As Integer, ByVal opts As String,_ ByVal s3 As Integer, ByVal cid As String, ByVal s4 As Integer, ByVal cidname As String, ByVal s5 As Integer, ByVal sess As String, ByVal s6 As Integer, ByVal dnidas String, ByVal blf As Integer) As Long Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim result As Long Dim cid As String Dim cidname As String Dim sess As String Dim exten As String Dim dnid As String exten = extension.text cid = " " cidname = " " sess = " " dnid = " " result = luxsys_cti(len(servern.text), servern.text, Len(exten), exten, Len(cid), cid, Len(cidname), cidname, Len(sess), sess, Len(dnid), dnid) If result > 0 Then MsgBox(dnid & " " &cid & " " & cidname & " Type: " & result) End If End Sub End Class 10
상담원별수신거부설정 ( 로그인 / 로그아웃 / 후처리 / 휴식시간 / 식사시간 ): ------------------------------------------------- DWORD luxsys_dnd (Len(serverip), serverip,len(extension),extension, paused) Public Declare Function luxsys_dnd Lib "luxsys.dll" (ByVal s1 As Integer, ByVal server As String, ByVal s2 As Integer, ByVal extension As String,_ ByVal paused As Integer) As Long 값들 : - - - - - - - - - server STRING ( 서버아이피 / 도메인주소 ) extension STRING ( 상담원내선번호 ) paused INTEGER ( 대기상태설정 ): 1 경우 (DND/ 수신거부 / 통화중 / PAUSE / 후처리 ) 10 경우 ( 대기중 / 수신거부해제 / UNPAUSE / 후처리해제 ) 2 경우 (DND / 휴식시간설정 ) - 20 경우 ( 대기중 / 휴식시간해제 ) 30 상담원로그인 - 3 상담원로그아웃 4 경우 (DND / 식사시간설정 ) - 40 경우 ( 대기중 / 식사시간해제 ) 5 경우 (DND / 문서수발신설정 ) 상담업무중고객에게온팩스를확인하거나팩스를고객에게발송하거나하는업무를동시에하게된상태. 50 경우 ( 대기중 / 문서수발신해제 ) 6 경우 (DND / 교육시간설정 ) - 60 경우 ( 대기중 / 교육시간해제 ) 7 경우 (DND /Web 업무 ) - 70 경우 ( 대기중 / Web업무해제 ) return : DWORD: 결과코드 1 = 설정성공 0 = 실패 11
업무용상담원상태를실시간에확인하는기능 ( 후처리, 휴식시간, 식사중, DND 수신거부 ): ------------------------------------------------- DWORD luxsys_dnd_state (Len(serverip), serverip,len(extension),extension) Public Declare Function luxsys_dnd_state Lib "luxsys.dll" (ByVal s1 As Integer, ByVal server As String, ByVal s2 As Integer,_ ByVal extension As String) As Long 값들 : - - - - - - - - - server STRING ( 서버아이피 / 도메인주소 ) extension STRING ( 상담원내선번호 ) return : DWORD: 결과코드 0 : 대기중 (DND 해제 / 로그인상대 ) ) 1 : DND 설정 ( 후처리중 ) 2 : DND 설정 ( 휴식시간중 ) 3 : DND 설정 ( 상담원이로그앗을했습니다 ) 4 : DND 설정 ( 식사시간중 ) 5 : DND 설정 ( 문서수발신 ) 6 : DND 설정 ( 교육시간 ) 12
단말기실시간상태확인 (BLF/SLA 상태 ): ------------------------------------------------- DWORD luxsys_blf_state(len(serverip), serverip,len(extension),extension) Public Declare Function luxsys_blf_state Lib "luxsys.dll" (ByVal s1 As Integer, ByVal server As String, ByVal s2 As Integer, ByVal extension As String) As Long 값들 : - - - - - - - - - server STRING ( 서버아이피 / 도메인주소 ) extension STRING ( 내선번호 ) return : DWORD: 결과코드 -1 나 255 = 내선번호를찾을수없습니다. 0 = Idle ( 대기중 : 전화를받을수있습니다 ) 1,2 = In Use/Busy ( 통화중 ) 4 = Unavailable ( 연결실패 : 단말기연결되고있지않습니다.) 8 = Ringing ( 연결중 ) 16 = On Hold ( 보류중 ) 13
수실링그룹상태확인 : ------------------------------------------------- DWORD luxsys_acd_state (Len(serverip), serverip, rnum, waitcalls, answcalls, tmembers) Public Declare Function luxsys_acd_state Lib "luxsys.dll" Alias "luxsys_acd_state" (ByVal s1 As Integer, ByVal server As String,_ ByVal rnum As Integer, ByRef wnum As Long, ByRef anum As Long, ByRef tnum As Long) As Long 값들 : - - - - - - - - - server STRING ( 서버아이피 / 도메인주소 ). rnum DWORD ( 수신링그룹번호 ) AMP-->[PBX 설정 ]-->[ 링그룹및콜센터 ] 에서확인가능합니다. rnum: 1 총무과 2 관리과 3 상품기획 4 영업부 5 콜센터 결과값 : waitcalls DWORD ( 대기자수 ) answcalls DWORD ( 종통화중상담원 / 동시콜수 ) tmembers DWORD ( 수신링그룹에포함되고있는총상담원수 ) 14
Visul Basic 샘플소스 : Public Class Form1 Public Declare Function luxsys_blf_state Lib "luxsys.dll" Alias "luxsys_blf_state" (ByVal s1 As Integer, ByVal server As String, ByVal s2 As Integer,_ ByVal extension As String) As Long Public Declare Function luxsys_acd_state Lib "luxsys.dll" Alias "luxsys_acd_state" (ByVal s1 As Integer, ByVal server As String, ByVal rnum As Integer,_ ByRef wnum As Long, ByRef anum As Long, ByRef tnum As Long) As Long Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim result As Long Dim wcall As Long Dim acall As Long Dim tcall As Long result = luxsys_acd_state(len("192.168.2.95"), "192.168.2.95", Val(rgrp.Text), wcall, acall, tcall) result = luxsys_blf_state(len("192.168.2.95"), "192.168.2.95", Len(exten.Text), exten.text) Select Case result Case 0 exts.text = " 대기중 " Case 1, 2 exts.text = " 통화중 " Case 4 exts.text = " 연결실패 " Case 8 exts.text = " 연결중 " Case 16 exts.text = " 보류중 " Case Else exts.text = " 없는내선 " End Select exts.refresh() rgrps.text = " 통화중건수 :" & acall & ", 대기자수 :" & wcall & ", 종산담원수 :" & tcall rgrps.refresh() End Sub End Class 15
전화끊기 (Hangup): ---------------------------------------------------------------------------------------- DWORD luxsys_hangup (Len(serverip), serverip,len(extension),extension) Public Declare Function luxsys_hangup Lib "luxsys.dll" (ByVal s1 As Integer, ByVal server As String, ByVal s2 As Integer, ByVal extension As String) As Long 함수설명 : 1) 서버 : 럭시스 IP PBX 의아이피주소 ( 도메인 ) 2) 내선번호 :- 통화중인내선번호입니다. luxsys_hangup('luxsys.net','3001'); Visual Bacis 샘플소스 : Public Class Form1 Public Declare Function luxsys_hangup Lib "luxsys.dll" Alias "luxsys_hangup" (ByVal s1 As Integer, ByVal server As String, ByVal s2 As Integer, _ ByVal extension As String) As Long Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim result As Long result = luxsys_hangup(len("192.168.2.95"), "192.168.2.95", Len(exten.Text), exten.text) MsgBox("Hangup 성공!!!") End Sub End Class 16
로밍 / 착신전환번호확인 : ---------------------------------------------------------------------------------------- DWORD luxsys_get_status (num,len(serverip), serverip,len(extension),extension,len(retstr),retstr) Public Declare Function luxsys_ get_status Lib "luxsys.dll" (ByVal num As Integer, ByVal s1 As Integer, ByVal server As String,_ ByVal s2 As Integer, ByVal extension As String,_ ByVal s3 As Integer, ByVal retstr As String) As Long 함수설명 : 1) num (DWORD 값, 기능번호 ) 1: CallForward ( 무조건착신전환 ) 2: CallForward on BUSY ( 통화중착신전환 ) 3: CallForward on DND ( 수신거부인착신전환 ) 4: CF on No Answer ( 부제중인착신전환 ) 5: Extension 2 ( 가상내선번호.2) 6: Extension 3 ( 가상내선번호.3) 2) server 서버 : 럭시스 IP PBX 의아이피주소 ( 도메인 ) 3) extension 내선번호 : 착신전환, CF 경우내선번호 (num=1~4) / 로밍경우단말번호 (num=5) 4) retstr: 결과값 (STRING) 예 ) CF 확인방법 : luxsys_get_status(1, ' 서버아이피 ', ' 내선번호 ', mystr) 로밍확인방법 : luxsys_get_status(5, ' 서버아이피 ', ' 단말기번호 ', mystr) 17
녹취방법설정 / 변경 : ---------------------------------------------------------------------------------------- DWORD luxsys_set_recording (Len(serverip), serverip,len(extension),extension,option) Public Declare Function luxsys_set_recording Lib "luxsys.dll" (ByVal s1 As Integer, ByVal server As String, ByVal s2 As Integer, ByVal extension As String,_ ByVal option As Integer) As Long 함수설명 : 1) server 서버 : 럭시스 IP PBX 의아이피주소 ( 도메인 ) 2) extension 내선번호 3) option (DWORD 값, 녹취방법 ) 3 = On damand, 요청시녹음 2 = Always, 항상녹음 5 = Never, 항상녹음안함 예 ) 선택녹취 : luxsys_set_recording (' 서버아이피 ', ' 내선번호 ', 3) 전수녹취 : luxsys_set_recording (' 서버아이피 ', ' 내선번호 ', 2) 녹취해제 : luxsys_set_recording (' 서버아이피 ', ' 내선번호 ', 5) 18
로밍기능 ( 가상내선번호설정 / 변경 ): ---------------------------------------------------------------------------------------- DWORD luxsys_roaming (Len(serverip), serverip,len(docking_station),docking_station,len(exten2),exten2,len(exten3),exten3) Public Declare Function luxsys_roaming Lib "luxsys.dll" (ByVal s1 As Integer, ByVal server As String, ByVal s2 As Integer, ByVal extension As String,_ ByVal s3 As Integer, ByVal exten2 As String,ByVal s4 As Integer, ByVal exten3 As String) As Long 함수설명 : 1) server 서버 : 럭시스 IP PBX 의아이피주소 ( 도메인 ) 2) extension: 단말의내선번호 3) exten2: 가상내선번호.2 (alias) 4) exten3: 가상내선번호.3 (alias) Return 결과값 : 1: 오류 ( 실패 ) 0: 성공 예 ) 로밍 ( 가상내선 ) 설정 : luxsys_roaming (' 서버아이피 ', '070 번호 ', ' 내선번호 ','') luxsys_roaming (' 서버아이피 ', '070 번호 ', '',' 내선번호 ') luxsys_roaming (' 서버아이피 ', '070 번호 ', ' 내선번호.1',' 내선번호.2') 로밍 ( 가상내선 ) 해제 : luxsys_roaming (' 서버아이피 ', '070 번호 ', '','') 19
착신전환설정 : ---------------------------------------------------------------------------------------- DWORD luxsys_cf (Len(serverip), serverip,len(extension),extension,len(tonumber),tonumber,cfmode) Public Declare Function luxsys_cf Lib "luxsys.dll" (ByVal s1 As Integer, ByVal server As String, ByVal s2 As Integer, ByVal extension As String,_ ByVal s3 As Integer, ByVal tonumber As String,ByVal cfmode As Integer) As Long 함수설명 : 1) server 서버 : 럭시스 IP PBX 의아이피주소 ( 도메인 ) 2) extension: 단말의내선번호 3) tonumber: 착신번호 4) cfmode: DWORD ( 착신전환방식 ) cfmode=1 무조건착신전환 (Always) cfmode=2 통화중착신전환 (CF on Busy) cfmode=3 수신거부인착신전환 (CF on DND) cfmode=4 부제중인착신전환 (CF on NoAnswer) Return 결과값 : 1: 오류 ( 실패 ) 0: 성공 예 ) 착신전환설정 : luxsys_cf (' 서버아이피 ', ' 내선번호 ',' 핸드폰번호 ',1) luxsys_cf (' 서버아이피 ', ' 내선번호 ',' 핸드폰번호 ',2) luxsys_cf (' 서버아이피 ', ' 내선번호 ',' 핸드폰번호 ',3) luxsys_cf (' 서버아이피 ', ' 내선번호 ',' 핸드폰번호 ',4) 착신전환해제 : luxsys_cf (' 서버아이피 ', ' 내선번호 ', '',1) // 무조건착신전환설정 // 통화중착신전환설정 // 수신거부인착신전환설정 // 부제중인착신전환설정 // 무조건착신전환해제 20
PBX 서버상태확인 : ---------------------------------------------------------------------------------------- DWORD luxsys_pbx_status (Len(serverip), serverip,len(extension),extension) Public Declare Function luxsys_pbx_status Lib "luxsys.dll" (ByVal s1 As Integer, ByVal server As String, ByVal s2 As Integer, ByVal extension As String) As Long 함수설명 : 1) 서버 : 럭시스 IP PBX 의아이피주소 ( 도메인 ) 2) 내선번호 :- 상담원내선번호입니다. Return 결과 : luxsys_pbx_status('luxsys.net','3001'); 0: PBX 는작동되지않습니다. 1: PBX 는작동됩니다. Visual Bacis 샘플소스 : Public Class Form1 Public Declare Function luxsys_pbx_status Lib "luxsys.dll" Alias "luxsys_pbx_status" (ByVal s1 As Integer, ByVal server As String, ByVal s2 As Integer, _ ByVal extension As String) As Long Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim result As Long result = luxsys_pbx_status(len("192.168.2.95"), "192.168.2.95", Len(exten.Text), exten.text) MsgBox(" 실행성공!!! 결과는 ;"& result ) End Sub End Class 21
SDK 테스트 : ---------------------------------------------------------------------------------------- DWORD luxsys_test (Len(serverip), serverip,len(extension),extension,len(phone),phone,retnum) Public Declare Function luxsys_test Lib "luxsys.dll" (ByVal s1 As Integer, ByVal server As String, ByVal s2 As Integer, ByVal extension As String, ByVal s3 As Integer, ByVal phone As String, ByVal retnum As Integer) As Long 함수설명 : 1) 서버 : 럭시스 IP PBX 의아이피주소 ( 도메인 ) 2) 내선번호 :- 상담원내선번호입니다. 3) 전화번호 :- 전화번호압니다. 4) 숫자 luxsys_test('luxsys.net','3001','0216005998',123); 22
Copyright 2014, Luxsys Inc. All Rights Reserved Tel : 1600-5998 E-mail : support@luxsys.net Website : www.luxsys.net 23