Voice SMS
Voice SMS
Prerequisites
- Voice SMS 서비스를 사용하기 위해서는 ToBeText 가입이 필요합니다.
- ToBeText 가입 시 API 의 사용이 가능하도록 Cid 및 token 을 발급하여 드립니다.
- 회원 가입 시 제공되는 소량의 Credit 으로 Voice SMS 서비스를 테스트 할 수 있습니다.
- Voice SMS 웹 응용프로그램을 사용 할 수 있는 웹 호스트가 필요합니다.
Post Method
- ToBeText 의 연동 API 는 POST 방식을 사용하여 메시지를 전달 합니다.
Base URL
- ToBeText API Base URL
- http://api-dev.tbnws.com/voice (no SSL)
- http://api-dev.tbnws.com:18443/voice (SSL)
- ToBeText API Backup URL
- http://api2-dev.tbnws.com/voice (no SSL)
- Backup URL 은 평시에는 전송 불가하며, 비상/장애 발생 및 테스트 등의 필요 시 활성화 가동 될 수 있음.
- Backup URL 의 경우 SSL 인증 제공되지 않음.
Required Parameters
Name | Description | Remarks |
---|---|---|
Ckey | 고객의 메시지 ID (고객사 메시지 ID 고유번호), 결과값 전송시 해당 메시지의 식별 값으로 전달 되는 값 (CKey, MsgId) | 고객사 전달 값 |
RecvNum | 수신자 번호 | 고객사 전달 값 |
SendNum | 송신자 번호 / 해외 경우 지정된 번호로 자동 변경, 국내 경우 전달된 번호로 전송 | 고객사 전달 값 |
Lan | 음성 언어 선택을 위한 언어 코드 (Language Codes 참조) | 고객사 전달 값 |
PCode | Chat On 인증코드 (4~6자리) | 고객사 전달 값 |
Cid | 고객사 고유 번호 (ToBe Networks 제공값) | ToBe 제공 값 |
token | 고객사 인증을 위한 토큰값 (ToBe Networks 제공값) | ToBe 제공 값 |
Optional Parameters
Name | Description | Remarks |
---|---|---|
Appid | 고객사 그룹 ID (다중 유저 사용시) | 고객사 전달 값 |
callback | 결과 수신을 위한 URL | 고객사 전달 값 |
Language Codes
Language | Code | Language | Code |
---|---|---|---|
Arab | ar | Japanese | jp |
Bengali | bn | Korean | ko |
Burmese(Myanmar) | my | Mongolian | mn |
Cambodian | kn | Nepali | ne |
Chinese | zh | Norwegian | no |
ChineseCantonese(HongKong) | hk | Perian | pr |
Czech | cs | Polish | pl |
Danish | da | Portuguese | pt |
Dutch | nl | Romanian | ro |
English | en | Russian | ru |
Filipino | fl | Spanish | es |
French | fr | Srilanka | lk |
German | de | Swedish | sv |
Greek | el | Thai | th |
Hebrew | iw | Turkish | tr |
Hindi | hi | Urdu | ur |
Indonesian | in | Uzbek | uz |
Italian | it | Vietnamese | vi |
Voice SMS Sample Codes
Java
import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import javax.net.ssl.HttpsURLConnection; public class ToBeText { public static void main(String[] args) throws Exception { ToBeText tobe = new ToBeText(); tobe.sendACS(); } private void sendACS() throws Exception { String USER_AGENT = "Mozilla/5.0"; String url = http://api-dev.tbnws.com/voice"; URL obj = new URL(url); HttpURLConnection conn = (HttpURLConnection) obj.openConnection(); // HttpsURLConnection conn = (HttpsURLConnection) obj.openConnection();// SSL connection conn.setRequestMethod("POST"); conn.setRequestProperty("User-Agent", USER_AGENT); conn.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); StringBuffer urlParameters = new StringBuffer(); urlParameters.append("Ckey=메시지 ID"); urlParameters.append("&RecvNum=수신전화번호력"); urlParameters.append("&SendNum=발신전화번호"); urlParameters.append("&Lan=음성변환 언어코드 ex)en"); urlParameters.append("&PCode=인증코드 4~6자리 "); urlParameters.append("&Cid=ToBeText에서 발급받은 고객님의 Cid"); urlParameters.append("&token=ToBeText에서 발급받은 고객님의 token"); urlParameters.append("&callback= 상태 값 Callback URL"); System.out.println("Request to URL : " + url); System.out.println("\n\nParameters : " + urlParameters); // Send post request conn.setDoOutput(true); DataOutputStream ostream = new DataOutputStream(conn.getOutputStream()); ostream.writeBytes(urlParameters.toString()); ostream.flush(); ostream.close(); int responseCode = conn.getResponseCode(); System.out.println("\n\nResponse Code : " + responseCode); BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println("\n\nResponse : " + response.toString()); } }
Curl
curl -X POST http://api-dev.tbnws.com/voice -d 'Ckey=메시지ID' -d 'RecvNum=국가번호 수신전화번호 입력' -d 'SendNum=발신전화번호 입력' -d 'Lan=음성변환 언어코드 ex)en' -d 'PCode=인증코드 4~6자리' -d 'Cid=ToBeText 발급 받은 Cid' -d 'token=ToBeText 발급 받은 token' -d 'callback=전송결과 상태 Callback URL'
php
<?php $url = 'http://api-dev.tbnws.com/voice'; $post_data["Ckey"] = "메시지ID"; $post_data["RecvNum"] = "수신전화번호"; $post_data["SendNum"] = "발신전화번호"; $post_data["Lan"] = "음성변환 언어코드"; $post_data["PCode"] = "인증코드 4~6자리"; $post_data["Cid"] = "ToBeText에서 발급 받은 고객님의 Cid"; $post_data["token"] = "ToBeText에서 발급 받은 고객님의 token"; $post_data["callback"] = "전송결과 상태 Callback URL"; $curlsession = curl_init (); curl_setopt ($curlsession, CURLOPT_URL, $url); curl_setopt ($curlsession, CURLOPT_POST, 1); curl_setopt ($curlsession, CURLOPT_POSTFIELDS, $post_data); curl_setopt ($curlsession, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec ($curlsession); var_dump($res); //결과값 출력 curl_close($curlsession); ?>
Error Codes
Error Code | Description | Remarks |
---|---|---|
200 | Success | 전송성공 |
410 | Authentication Failed, 인증 실패, Cid 및 token 값 확인 | 전송실패 |
2001 | CKey 값 오류 | 전송실패 |
2002 | CCode 값 오류 | 전송실패 |
2004 | SendNum 값 오류 | 전송실패 |
2005 | Body field 값 오류 | 전송실패 |
2006 | Cid (고객사 ID) 값 오류 | 전송실패 |
2007 | Token 값 오류 | 전송실패 |
Response Sample
<ToBeTextResult> <Status>Success</Status> <MsgId>41aa33709703dea382c10a057823ffdc</MsgId> <SendNum>821012341234</SendNum> <RecvNum>821012341234</RecvNum> <ErrorCode>200</ErrorCode> <ErrorMsg>Message successfully sent</ErrorMsg> </ToBeTextResult> |
Status Callback
- SMS 전송 결과를 주기적으로 전송. (전송후 약 3분 ~ 30분 이내)
- 메시지 전송 시 입력한 Callback URL 로 회신.
Status Callback URL
- ACS 전송 시 callback Parameter로 전달되는 URL.
예) http://yourdomain.com/recv/
※ http:// 를 포함한 Full Address
Parameters
Name | Description | Remarks |
---|---|---|
CKey | 고객의 메시지 ID (고객사 메시지 ID 고유번호), 결과값 전송시 해당 메시지의 식별 값으로 전달 되는 값 (CKey, MsgId) | |
Status | 전송 결과 값 | |
MsgId | ToBe Networks 고유 메시지 ID 값 | Char 34 bytes |
SendNum | 송신자 전화 번호 / 해외 경우 지정된 번호로 자동 변경, 국내 경우 전달된 번호로 전송 | |
RecvNum | 수신자 전화 번호 | |
ErrorCode | 고객사 전달용 에러 코드 | |
ErrorMsg | 고객사 전달용 에러 메시지 |
Error Codes
Error Code | Description | Remarks |
---|---|---|
200 | Success | 전송성공 |
400 | Failed | 전송실패 |
411 | 내부 오류 | 전송실패 |
412 | 기타 | 전송실패 |