Android 장치에서 DTMF 콜백 전화 기능을 쉽게 사용할 수 있는 애플리케이션의 작업 프로토타입 개발. 전화 또는 DTMF 디코더로 장치를 쉽게 제어할 수 있습니다. 실제 기능과 개발 경험을 바탕으로 합니다.

DTMF(이중 톤 다중 주파수)전화기의 버튼을 누를 때 발생하는 신호음입니다.
DTMF는 다양한 대화형 시스템의 자동 응답기(IVR)에 널리 사용됩니다. VoIP에 적용할 때, 다양한 코덱을 다룰 때 DTMF는 주의가 많이 필요한 부분이므로 그 동작을 명확히 이해해야 합니다.

기본적으로 게이트웨이는 RTP 스트림( 대역 내), 코덱을 사용할 때 잘 작동합니다. 높은 비트 전송률 G.711, 즉 음성 스트림이 압축되지 않은 경우.
DTMF의 주요 문제는 G.729 코덱과 같은 압축 알고리즘을 사용할 때 발생합니다. 사실 압축하면 헤드 스트림의 품질이 눈에 띄게 저하되고 이는 가입자가 서로를 이해하는 능력에 거의 영향을 미치지 않지만 DTMF 톤은 더 이상 충분히 명확하지 않고 잘못 인식됩니다.

이 문제는 다음을 사용하여 해결될 수 있습니다. DTMF 릴레이, DTMF 신호가 RTP 스트림과 별도로 전송되는 경우, 또는 대역 외.

몇 가지 예를 살펴보겠습니다.


그림은 H.323 게이트웨이를 통해 전화 통신을 연결하는 다이어그램을 보여줍니다.

PSTN 섹션에서 DTMF는 대역 내로 전송됩니다. 아날로그 회선이기 때문에 DTMF Relay라는 개념조차 없습니다.

DTMF 릴레이는 압축 방식을 사용할 수 있는 VoIP 부문에서만 필요합니다.
또한 다음과 같이 말할 수도 있습니다.
- 대역 내 DTMF 릴레이는 RTP 스트림 내부로 이동합니다. 그림에서 빨간색 RTP 선을 따라 표시됩니다.
- 대역 외 DTMF 릴레이는 신호와 함께 진행됩니다. 그림의 녹색 선을 따라

사이트에서 전화-CUCM그리고 CUCM-H.323게이트웨이다른 신호가 사용되므로 DTMF 중계 방법도 다릅니다. 전화 측에서는 H.323 게이트웨이 측에서 인코딩에 DTMF가 포함된 SCCP 메시지가 전송되고 DTMF와 함께 신호는 H.245 메시지에서 전송됩니다.
우리의 경우 CUCM은 다양한 유형의 신호 간의 DTMF 전달자 역할을 합니다.

위치: 전화-CUCM우리는 단지 할 수 있을 것이다 대역 외, SCCP 전화는 지원하지 않기 때문에 대역 내.
위치: CUCM-H.323게이트웨이같은 방법 대역 내, 그래서 대역 외. 또한 SCCP 전화기의 경우 대역 내사용이 필요합니다 MTP.

또한 H.323 트렁크에 대한 DTMF 설정은 물리적 H.323 게이트웨이에서 다이얼-피어를 사용하여 이 트렁크를 작동하기 위한 설정이라는 점을 이해해야 합니다.

시그널링 프로토콜(H.323, SIP, MGCP, SCCP)에 따라 DTMF Relay를 구현하는 방법이 다릅니다. 어떤 경우든 Call Manager CUCM은 처음에 모든 사람에게 공통된 방법을 조정하지 않으려고 시도합니다. 공통적인 방법이 발견되지 않으면 MTP를 사용하려고 시도합니다.

H.323 DTMF 지원

Cisco 게이트웨이는 다음과 같은 DTMF 릴레이 방법을 지원합니다.

  • Cisco 독점: - 대역 내 DTMF 릴레이. DTMF는 음성과 동일한 RTP 스트림으로 전송되지만 DTMF 톤은 약간 다르게 인코딩되므로 상대방에서 성공적으로 구별하고 수신할 수 있습니다. DTMF 샘플은 다음과 같이 식별됩니다. RTP 페이로드 유형 121. 이 방법은 양쪽에 시스코 장비가 있어야만 작동하며, 같은 방법입니다.
  • H.245 영숫자:- 대역외 DTMF 릴레이. DTMF를 RTP 스트림에서 분리하여 다음을 통해 보냅니다. H.245 사용자 입력 표시 메시지. 이 방법은 보내지 않습니다. 톤 길이: 톤 길이는 항상 500msec로 간주됩니다.
    이 예에서는 "5"를 클릭했습니다.

    디버그: h245 asn1 디버그

  • H.245 신호:- 대역외 DTMF 릴레이. 이 방법은 톤 길이( 톤 길이).

    디버그: h245 asn1 디버그

  • 참고:- 대역 내 DTMF 릴레이. Cisco 독점과 유사하게 작동하는 DTMF는 음성과 동일한 RTP 스트림으로 전송됩니다. RTP 페이로드 유형. 다른 페이로드는 DTMF 샘플 압축을 허용하지 않습니다. 같지 않은 시스코 독점, NTE RFC 2833 표준을 사용합니다.

    디버그: h245 asn1 디버그

Cisco 라우터에서는 다음 명령을 사용할 수 있습니다.

라우터(config-dial-peer)#dtmf-relay ? cisco-rtp Cisco 고유 RTP h245 영숫자 H245 영숫자 IE를 통한 DTMF 릴레이 h245-signal H245 신호 IE를 통한 DTMF 릴레이 rtp-nte RTP 명명된 전화 이벤트 RFC 2833 라우터(config-dial-peer)#

모범 사례:
Dialpir에서는 다음과 같이 명령을 내리는 것이 가장 좋습니다:

다이얼-피어 음성 3000 voip 설명 긴 통화 목적지 패턴 ... 세션 대상 ipv4:192.168.0.11 dtmf-relay h245-signal h245-alphanumeric cisco-rtp rtp-nte 코덱 g711ulaw no vad

이 경우 양측은 적절한 dtmf-relay 방법을 서로 협상할 수 있습니다.

선택한 DTMF 릴레이 방법을 결정하려면:
통화 활성 음성 표시

라우터#통화 활성 음성 표시 .......... PeerAddress=5001 ........... tx_DtmfRelay=rtp-nte

따라서 CUCM은 어떤 DTMF 방법이 양쪽 모두에게 적합한지 자동으로 확인합니다.
CUCM의 H.323 게이트웨이와 관련하여 DTMF 설정이 없습니다. CUCM은 상대방의 설정을 수락합니다.

MGCP DTMF 지원

MGCP에는 다음과 같은 DTMF 릴레이 방법을 사용할 수 있습니다.

  • Cisco 독점: DTMF는 음성과 동일한 RTP 스트림으로 전송되지만 DTMF 톤은 약간 다르게 인코딩되므로 상대방에서 성공적으로 구별하고 수신할 수 있습니다. DTMF 샘플은 다음과 같이 식별됩니다. RTP 페이로드 유형 121. 이 방법은 양쪽에 Cisco 장비가 있고 유사한 방법을 선택한 경우에만 작동합니다(아무것도 협상되지 않음).
  • NSE: NSE는 기본적으로 Cisco 독점 NTE입니다. 이 방법은 양쪽에 Cisco 장비가 있고 유사한 방법을 선택한 경우에만 작동합니다(아무것도 협상되지 않음).
  • 참고:차례로 두 가지 모드로 작동할 수 있습니다.
    - 게이트웨이 제어 모드(NTE GW):게이트웨이는 DTMF를 서로 독립적으로 협상하여 SDP 메시지의 기능 정보를 교환합니다. 이 프로세스는 통화 상담원에게 투명합니다. 이 경우 두 게이트웨이 모두 MGCP가 실행 중이고 둘 다 동일한 CUCM에 연결되어 있습니다.
    - 통화 에이전트 제어 모드(NTE CA):협상에서는 통화 에이전트가 사용됩니다. MGCP 게이트웨이를 대신하여 작동합니다(SDP 메시지가 에이전트로 전송됨). 이 모드는 두 번째 게이트웨이가 MGCP-Gateway가 아닌 경우에 사용할 수 있습니다. 협상 후 통화 에이전트는 상대방과 수락한 RTP-NTE 값에 대해 게이트웨이에 지시합니다.
  • 대역 외:톤은 MGCP 메시지를 사용하여 CUCM으로 전송됩니다. RTP 스트림 외부(대역 외). 그러면 CUCM은 DTMF를 수신하여 상대방에게 전송합니다.

MGCP는 저속 코덱(G729, iLBC, GSM 등)에만 DTMF 릴레이를 사용합니다. 비트 전송률 코덱의 경우 G711 DTMF가 전송됩니다. 대역 내.

MGCP의 경우 DTMF 설정을 통화 에이전트(CUCM)에서 지정할지, 아니면 게이트웨이에 설정된 설정을 사용할지 선택할 수 있습니다.
CUCM으로 이동해 보겠습니다. 장치 > 게이트웨이에서 적절한 MGCP 게이트웨이를 선택하세요.
우리는 섹션에 관심이 있습니다 DTMF 릴레이 유형.

선택할 때 현재 GW 구성, 게이트웨이에 있는 설정이 사용됩니다.
IOS 게이트웨이에서는 다음 명령을 사용하여 DTMF를 설정할 수 있습니다.

Router(config)#mgcp dtmf-relay voip 코덱 모든 모드 ? cisco mgcp dtmf-relay 모드를 비활성화하도록 설정 cisco mgcp dtmf-relay 모드를 비활성화하도록 설정 nse mgcp dtmf-relay 모드를 nse로 설정 nte-ca mgcp dtmf-relay 모드를 nte-ca nte-gw로 설정 mgcp dtmf 설정 -relay 모드를 nte-gw 대역 외로 설정 mgcp dtmf-relay 모드를 대역 외로 설정

예를 들어 CUCM에 다른 선택을 하면 시스코, 위의 해당 명령이 자동으로 입력됩니다(MGCP 메커니즘).

MGCP에서 버그가 발견되었습니다.

CSCta69407 버그 세부정보(모든 유형의 대역 내 DTMF 신호(RTP-NTE, NSE 또는 Cisco 독점)를 사용하는 경우 DSP는 mgcp 패킷을 사용하여 OOB dtmf 신호를 끄지 않습니다. 따라서 종료 GW에 중복된 숫자가 표시됩니다. rtp 및 기타 CUCM에서 제공)

해결 방법: mgcp dtmf-relay 유형의 대역외를 사용합니다.

SIP DTMF 지원

기본적으로 SIP는 DTMF를 보냅니다. 대역 내, 그러나 다음 옵션을 사용할 수 있습니다.

  • RTP-NTE (NTE또는 RFC 2833) - 대역 내 DTMF 릴레이. DTMF 정보를 전달하기 위해 음성 패킷 대신 RTP NTE(Named Telephony Event) 패킷을 사용합니다. 이 경우 SDP는 페이로드 유형=NTE 값을 노드 간에 협상하는 데 사용됩니다. 비록 공식적으로는 대역 내, 그러나 NTE 패킷은 음성이 아니기 때문에 실제로는 오디오 스트림에서 톤이 들리지 않습니다.
    SCCP 전화는 대역 외 DTMF 릴레이만 사용하므로 RTP-NTE는 SCCP 전화와 작동할 수 없습니다. 이러한 이유로 MTP는 RTP-NTE와 함께 사용해야 합니다.
  • 한 모금 정보 - 대역 외(OOB) DTMF 릴레이. DTMF 정보는 SIP INFO 메시지로 전송됩니다. 저것들. 게이트웨이가 INFO 메시지를 수신하면 적절한 신호음이 발생합니다.
  • SIP 알림 - 대역 외(OOB) DTMF 릴레이. 또는라고도합니다. NOTIFY 기반 대역외 DTMF 릴레이. 이 유형의 DTMF 릴레이는 NOTIFY를 사용하여 톤을 전송합니다. 이 방법은 SCCP 전화와 호환되며 게이트웨이의 FXS 포트에 연결된 아날로그 전화에도 사용할 수 있습니다.
  • KPML - 대역 외(OOB) DTMF 릴레이. Key Press Markup Language를 사용하는 경우 SIP 전화는 숫자를 숫자 단위로 보냅니다. 이 방법은 다음과 유사합니다. SIP 알림, 각 숫자를 별도로 제공한다는 유일한 차이점이 있습니다.
라우터(config-dial-peer)#세션 프로토콜 sipv2 라우터(config-dial-peer)#dtmf-relay ? cisco-rtp Cisco 독점 RTP h245-alphanumeric DTMF Relay via H245 Alphanumeric IE h245-signal DTMF Relay via H245 Signal IE rtp-nte RTP Named Telephone Event RFC 2833 sip-kpml DTMF Relay via KPML over SIP SUBCRIBE/NOTIFY sip-notify DTMF Relay SIP NOTIFY 메시지를 통해 라우터(config-dial-peer)#

여기서는 CUCM 작업에만 적합한 몇 가지 사용 가능한 방법을 볼 수 있습니다.
- RTP-NTE (NTE또는 RFC 2833);
- 한 모금 알림;
- SIP-KPML.

안녕하세요 여러분.
멋진 마이크로 컨트롤러 없이 휴대폰을 사용하여 무언가를 제어하고 싶습니까? 그렇다면 고양이에 오신 것을 환영합니다.

최근 Muska에서는 셀룰러 네트워크를 통해 모든 것을 제어할 수 있는 SIM800과 같은 GSM 모듈에 대한 여러 리뷰가 있었습니다. 그러나 문제는 모두 마이크로 컨트롤러에 연결하고, 펌웨어를 작성하고, 초심자에게는 어려운 작업이 필요하다는 것입니다. 또 다른 극단은 다음과 같습니다. "휴대폰의 진동 모터에 릴레이를 납땜했는데 모든 것이 저에게 효과적입니다." :)) 이것도 가능하지만 펌프가 냉동 물로 온실에 물을 주려고 해도 놀라지 마십시오. 음, SMS가 도착한 후 "새해 복 많이 받으세요!" 알 수 없는 발신자로부터 :)))
일반적으로 저는 이 두 가지 솔루션 사이의 격차를 메우고 자체 솔루션을 제공하기로 결정했습니다.

오늘은 DTMF 신호 디코더, 간단히 말해서 톤 신호에 대해 이야기하겠습니다.
호기심이 읽을 수 있습니다
이 기술은 상당히 구식이지만 여전히 모든 휴대폰에서 지원됩니다.
실제로는 기관에 전화할 때 사용하는 톤 다이얼링이며 자동 응답기는 다음과 같이 알려줍니다. “가입자 번호를 알고 있으면 "1"을 누르고, 새로운 제안에 대해 알고 싶으면 "2"를 누르세요. 등등. 전화기에서 원하는 번호의 버튼을 누르면 음성 채널을 통해 특정 톤의 신호를 보냅니다. 전화 키보드의 각 문자에는 고유한 "멜로디"가 있습니다. DTMF 디코더가 디코딩하여 출력에서 ​​신호로 변환하는 것은 바로 이 사운드입니다.


보드는 마이크로 회로에 조립되어 있으며 5V로 전원이 공급되고 다음과 같은 출력을 갖습니다: Q1-Q4 개별 출력, StQ/StQ 역 출력. 신호가 올바르게 인식될 때마다 트리거됩니다. 보드에 납땜된 3.5mm 잭을 사용하지 않으려는 경우 오디오 신호용 IN 입력입니다. GND/VCC 전원 공급 장치, 5V.
출력 Q1-Q4는 표에 따라 트리거됩니다.

예를 들어, 이제 내 보드에 있는 두 개의 중간 LED가 켜지고 출력 Q2와 Q3이 활성화됩니다. 표를 보면 이는 누른 키 "6"에 해당합니다. "1" 키를 누르면 출력 Q1이 작동하고, "2"이면 Q2가 작동합니다. "3"이면 출력 Q1과 Q2가 동시에 "점등"됩니다. 등등.
일반적으로 이는 4비트 코드입니다. 특수 칩으로 복호화하면 16개의 출력을 얻을 수 있다.
그건 그렇고, Ali는 이미 디코더가 포함된 보드를 판매하지만 가격이 더 비쌉니다. 고급 옵션은 이 모든 것을 마이크로 컨트롤러에 연결하는 것입니다. 저는 이렇게 했습니다. 비밀번호를 설정하고 전화를 걸어 비밀번호를 입력하고 컨트롤에 액세스할 수도 있습니다...
그러나 이것은 더 이상 내 기사의 범위에 포함되지 않습니다. 왜냐하면... 기사 시작 부분에서 나는 모든 것이 간단할 것이라고 약속했습니다.

따라서 우리는 KT815 트랜지스터, 1.1kOhm 저항기, 12V 릴레이 및 LM7805 안정기를 사용합니다. 나머지 부품(릴레이 코일의 1N4007 보호 다이오드, 노란색 0.1μF 세라믹 커패시터 및 1000μF 전해 커패시터)이 바람직하지만 해당 부품 없이도 작동합니다. 트위터는 릴레이에 부하로 연결됩니다.
나는 다이어그램을 그리지 않을 것이며 설치는 힌지 방식이므로 사진에서 모든 것을 볼 수 있습니다.


다른 쪽에서는:


구조의 일반 전원 공급 장치는 12V입니다. 이는 계전기에 필요하지만 보드의 경우 안정기에 의해 5V로 낮아집니다.
코드를 사용하여 보드의 3.5mm 잭을 전화기의 헤드폰 출력에 연결하고 자동 픽업을 설정하면 완료됩니다. 이제 보드에 연결된 전화기로 전화를 걸면 수화기를 들 때까지 기다린 후 '1'을 누르면 릴레이가 작동하고 부저가 울리기 시작합니다. "2"를 누르면 모든 것이 꺼집니다. 그건 그렇고, 무엇을 제어하려는지에 관계없이 부저를 그대로 두는 것이 좋습니다. 이는 전화를 통해 들을 수 있기 때문에 편리하며, 이렇게 하면 피드백을 얻을 수 있습니다. 전화를 걸면 신호음이 들리는데, 이는 부하가 켜져 있음을 의미합니다 :)

나는 그것이 어떻게 작동하는지 보여주는 짧은 비디오를 만들었습니다.

+128을 구매하려고 합니다 즐겨 찾기에 추가 리뷰가 마음에 들었습니다 +72 +169

무선 제어 모델은 작동 범위가 제한되고 주파수 응답이 제한되며 컨트롤러와의 매칭 문제가 있는 RF 회로를 사용합니다. 휴대폰을 사용하여 모델을 제어하면 이러한 단점을 피할 수 있습니다. 휴대폰을 사용할 경우, 운영자의 적용 범위 전체에서 모델을 제어할 수 있으며 외부 장치와 문제 없이 작동할 수 있습니다.

모델의 모양과 기능은 크게 다를 수 있지만 모든 모델에는 기계적인 부분과 모델을 제어하는 ​​부분이 있습니다. 모델 관리에는 명령 수신, 처리 및 실행의 세 단계가 포함됩니다. 일반적으로 명령은 외부 센서에 의해 제공되고 마이크로 컨트롤러에 의해 처리되며 실행에는 모터가 사용됩니다.

검토

이 기계는 제어를 위해 두 개의 휴대폰을 사용합니다. 하나는 손에 들고 리모콘으로 사용하고 다른 하나는 모델에 수신기로 설치합니다. 자신의 휴대폰에서 해당 모델의 휴대폰으로 전화가 수신되며, 통화 중에 키를 누르면 휴대폰에서 다중 주파수 신호가 수신됩니다. 이 신호를 DTMF(Dual-Tone Multi-Frequency)라고 합니다.
MT8870 DTMF 디코더를 사용하면 DTMF가 이진 코드로 디코딩되며, 이 코드는 ATmega16 마이크로컨트롤러에서 처리된 다음 모터 드라이버에 명령을 보냅니다.

보시다시피, 이 모델은 매우 간단하며 복잡한 송신기 구성이 필요하지 않습니다.
DTMF 신호는 전화번호를 누르거나 음성 응답에 사용됩니다.
신호는 고정 주파수의 두 정현파 신호로 구성되며 이진 코드로 쉽게 디코딩되거나 그 반대의 경우도 마찬가지입니다. 문자를 DTMF 신호로 인코딩하려면 두 개의 정현파 신호를 추가해야 합니다. 예를 들어 숫자 5를 전송해야 하는 경우 한 신호의 주파수는 1336Hz이고 다른 신호의 주파수는 770Hz가 되며 이 신호는 두 번째 전화기에서 수신됩니다.

회로 설명

블록 다이어그램은 장치의 작동 원리를 보여줍니다. 주요 구성 요소는 DTMF 디코더, 마이크로 컨트롤러 및 모터 드라이버입니다.

MT8870 칩은 DTMF 디코더로 사용됩니다. 디지털 신호 인식 방식을 사용하며 4핀으로 신호를 출력합니다. 또한 입력 신호에 대한 사전 필터링이 필요하지 않습니다. PIN2(B-)에 입력 신호가 인가되면 디코딩된 신호가 Q1(pin11)~(pin14) 핀에 출력됩니다.

ATmega16은 전력 소비가 낮은 고급 AVR RISC 아키텍처를 기반으로 하는 8비트 CMOS 마이크로컨트롤러입니다. 16KB의 프로그래밍 가능 플래시 메모리, 512B EEPROM, 1KB SRAM, 32개의 I/O 라인 및 32개의 레지스터를 갖추고 있습니다. 마이크로 컨트롤러 핀 PD0 - PD3 및 PD7에서 L293d 모터 드라이버의 출력 IN1 - IN4 및 EN1-EN2로 신호가 전송됩니다. 스위치 S1은 수동 재설정에 사용됩니다.

프로그램

마이크로컨트롤러는 WIN AVR을 사용하여 프로그래밍됩니다. 이를 수행하는 방법을 모르는 사람들을 위해 살펴보십시오. 거기에 모든 것이 자세히 설명되어 있습니다. 기사에는 소스와 hex 파일이 함께 제공됩니다. WinAVR이 설치되어 있으면 여는 데 문제가 없습니다.

직업

모델을 제어하려면 어떤 휴대폰에서든 해당 모델의 휴대폰으로 전화를 걸어야 합니다. 기기가 자동으로 응답하면 다음 키를 누르세요.
2 - 앞으로 나아갑니다.
4 – 좌회전하세요.
8 – 반대 방향으로의 움직임.
6 – 우회전하세요.
5 – 중지합니다.

요소 목록:
DTMF 디코더 MT8870 – 1.
마이크로컨트롤러 Atmega16 – 1.
모터 드라이버 L293d – 1.
연산 증폭기 Cd7004 – 1.
다이오드 1N4007 – 1.
저항 100kΩ – 2.
저항 10kΩ – 5.
저항기 330kOhm - 1.
커패시터 0.47uF – 1.
커패시터 0.1uF – 1.
커패시터 22pF – 4.
석영 3.57MHz – 1.
석영 12MHz – 1.
순간 버튼 – 1.
모터(6V, 50rpm) – 4륜 구동용 2개 또는 4개.
배터리 6V – 1.
바퀴 – 4.
휴대폰 – 2.
스피커폰(핸즈프리) – 1.

전화기를 섀시에 고정해야 합니다. 전화기는 핸즈프리 헤드셋을 통해 로봇에 연결됩니다.

핸즈프리 연결
미니잭 커넥터를 이용해 핸즈프리를 사용했습니다.

아래에서 프로그램 소스코드와 펌웨어를 다운로드 받으실 수 있습니다.

방사성 원소 목록

지정 유형 명칭 수량 메모가게내 메모장
IC1 DTMF 디코더MT88701 메모장으로
IC2 MK AVR 8비트

ATmega16

1 메모장으로
IC3 모터 드라이버L293D1 메모장으로
IC4 버퍼 IC, 드라이버

SN74LS04

1 메모장으로
D1 정류다이오드

1N4007

1 메모장으로
C1 콘덴서0.47μF1 메모장으로
C2, C3, C5, C6 콘덴서22pF4 메모장으로
C4 콘덴서0.1μF1 메모장으로
R1, R2 저항기

100k옴

2 메모장으로
R3 저항기

330k옴

1 메모장으로
R4-R8 저항기

10k옴

5 메모장으로
XTAL1 석영 공진기3.57MHz1 메모장으로
XTAL2 석영 공진기12MHz1

지식 기반에서 좋은 작업을 보내는 것은 간단합니다. 아래 양식을 사용하세요

연구와 업무에 지식 기반을 활용하는 학생, 대학원생, 젊은 과학자들은 여러분에게 매우 감사할 것입니다.

게시 날짜 http://www.allbest.ru/

소개

세계의 과학 및 기술 발전의 발전은 21세기 초 셀룰러 통신의 급속한 확산에 기여했습니다. 이는 유선 전화 통신이 불가능한 장소에서 지속적으로 액세스 분야에 있어야 하기 때문입니다. .

시장 가격의 하락 추세로 인해 러시아의 거의 모든 시민은 자신의 개인 휴대폰에 접근할 수 있습니다.

많은 통신 사업자가 셀룰러 서비스를 제공합니다. 인터넷 기술의 발전으로 IP 텔레포니가 인기를 얻었는데, 이는 도청으로부터 보호되는 대화, 서버에 있는 대화를 녹음하는 것, 짧은 번호 사용, 무단 통화 등 기존의 셀룰러 전화에 비해 여러 가지 장점을 가지고 있습니다. 공급자의 참여.

VoIP 서버와 휴대폰 간에 통신하는 방법에는 여러 가지가 있습니다. 가장 분명한 것 중 하나는 일반적으로 이동통신사에 비용을 지불해야 하는 인터넷 연결입니다. 이는 VoIP용 인터넷 통신을 자체 전화 서비스보다 저렴하게 만드는 데 특별히 수익성이 없습니다. 따라서 IP 전화를 통한 통화에 필요한 안정적인 인터넷을 갖춘 요금의 가격이 부풀려질 수 있습니다.

VoIP 서버와 통신하는 방법이 있는데, 보통 콜백이라고 하는데, 서버가 어떤 번호로 전화할지 알려주고, 서버가 가입자에게 다시 전화를 걸어 가입자가 거는 번호로 연결해 주는 방식이다. 이 번호는 인터넷, SMS 또는 톤 다이얼링(DTMF)을 통해 전송될 수 있습니다.

특히 가입자가 로밍 중인 경우 SMS를 보내거나 인터넷을 사용하는 것이 항상 가능한 것은 아닙니다. 흔히 사용 가능한 유일한 통신 방법은 "기존" 휴대폰 통화입니다. 셀룰러 통화를 통해 VoIP 서버와 통신할 수 있는 방법이 있습니다. 이를 위해 다음 알고리즘을 사용하여 DTMF 콜백이 사용됩니다.

1. 가입자 A가 전화서버번호로 전화를 겁니다.

그림 1. 1단계

2. 전화 통신 서버의 연결이 끊어집니다.

그림 2. 2단계

3. 텔레포니 서버는 가입자 "A"에게 콜백하고 응답을 기다립니다.

그림 3. 3단계

4. 가입자 A가 전화를 받습니다.

그림 4. 4단계

5. 톤다이얼링에서는 가입자 A가 가입자 B의 번호로 다이얼을 돌린다.

그림 5. 5단계

6. 서버는 가입자 "B"에 대한 호출을 시작합니다.

그림 6. 6단계

7. 초기화 후 서버는 가입자 "A"와 가입자 "B"의 연결을 연결합니다. 가입자 "A"는 이미 가입자 "B"의 발신음을 듣고 있습니다.

그림 7. 7단계

가입자 "B"가 전화에 응답합니다. 두 사용자 모두 음성 메시지를 교환할 수 있습니다.

그림 8. 8단계

결과적으로 가입자 A와 가입자 B는 전화가 걸려오고 텔레포니 서버를 통해 서로 통신할 수 있게 된다.

Callback 방식과 달리 서버가 가입자 A에게 다시 전화를 걸 필요가 없지만 이와 관련하여 가입자 A가 발신 통화 비용을 지불하는 Callthrough 방식이 있습니다.

개발 기반

DTMF를 사용하여 콜백을 초기화할 때의 주요 단점은 서버가 다시 전화한 후 가입자 "A"가 수동으로 가입자 "B"의 번호로 전화를 걸어야 한다는 것입니다. 가입자 A의 휴대전화 통화기록에는 자신이 걸었던 번호, 즉 서버번호가 발신전화에 남고, 다시 전화한 콜백번호는 수신전화에 남게 된다. 이 정보는 사용자에게 그다지 유익하지 않습니다. 가입자 "A"가 다른 번호로부터 콜백 전화를 받도록 텔레포니 서버를 구성할 수 있습니다. 이는 사용자의 통화 기록에 익숙하지 않은 번호가 많이 있음을 의미합니다. 이 정보는 불필요하므로 구독자에게 숨겨야 합니다. 콜백 서비스는 DTMF를 통해 직접 액세스할 수 없지만 인터넷 연결, SMS 또는 특수 SIM 카드를 사용하는 경우가 많습니다.

개발 목적

Android 기기에서 DTMF 콜백 전화 기능을 쉽게 사용할 수 있는 애플리케이션의 작동 프로토타입을 개발합니다.

검토 및 분석 부분

세포의

셀룰러 통신은 액세스 영역이 벌집 모양의 육각형 셀로 구분되어 있는 무선 통신입니다. 이러한 액세스 영역 중 하나는 기지국에 의해 제공됩니다. 셀 영역을 구성하는 이러한 기지국 집합을 셀룰러 네트워크라고 하며, 셀룰러 네트워크를 사용하는 장치는 휴대폰입니다. 셀룰러 네트워크에서 각 셀은 간섭을 방지하고 각 셀의 처리량을 보장하기 위해 인접 셀과 다른 주파수 세트를 사용합니다.

셀룰러 네트워크 기능:

· 여러 기지국을 사용하면 하나의 대형 송신기를 사용하는 것보다 더 많은 옵션을 제공합니다. 각 셀에는 기지국에 해당하는 여러 주파수가 할당될 수 있습니다. 인접 셀이 서로 다른 주파수를 사용하는 경우 주파수 그룹을 재사용할 수 있습니다.

그림 9. 주파수 재사용 방식(F1-F4 - 주파수)

· 모바일 장치는 타워와 통신하는 데 더 적은 에너지를 할당하므로통신탑의 위치가 더 가까워서 이를 찾는 데 덜 강력한 신호가 필요한 이유

· 단일 지상 송신기보다 적용 범위가 넓으므로 간섭으로 인해 신호가 잘 전달되지 않는 통신 상태가 좋지 않은 지역에 셀 타워를 추가로 추가할 수 있습니다.

셀을 배열할 때 셀 영역이 겹치지 않도록 하는 것이 가장 좋습니다. 따라서 코팅의 기하학적 모양은 삼각형, 사각형 또는 육각형과 같은 도형이 될 수 있습니다. 안테나 커버리지의 모양은 육각형과 가장 유사합니다.

한 휴대폰에서 다른 휴대폰으로 신호를 관리하고 라우팅하는 장치를 자동 전화 교환기(PBX)라고 합니다. 현재 거의 모든 자동 전화 교환은 전자 방식입니다.

다이얼러는 PBX가 연결되어야 하는 전화 번호를 전송할 수 있는 전화 인터페이스의 일부입니다. 오랫동안 각 숫자가 자체 펄스 수에 해당하는 펄스를 생성하는 펄스 다이얼러가 사용되었습니다. 전화기에는 10개의 구멍이 있는 디스크가 있습니다. PBX에 연결하는 원리는 다음과 같습니다.

전화에서는 표시된 숫자의 지점에서 디스크가 회전하여 스프링을 감습니다. 디스크가 풀리면 스프링이 풀리기 시작하고 디스크가 반대 방향으로 움직이기 시작합니다. 펄스 다이얼링은 전화선의 닫힘 및 열림에 해당합니다. 한 문자 세트를 다른 문자 세트와 구별하기 위해 펄스 세트 사이에 일시 중지가 이루어집니다. 이 전화 걸기 방법은 매우 불편합니다. 가입자는 디스크를 여러 번 제거하고 제자리로 돌아올 때까지 기다려야 합니다. 그 후 펄스 푸시 버튼 다이얼이 나타나 이러한 단점을 제거했습니다.

현재는 2톤 다중 주파수 신호(Dual Tone Multi-Frequency, DTMF)를 사용하여 전화를 겁니다. DTMF는 내부 전화 네트워크 명령에 사용될 수 있습니다. DTMF에서 전송된 숫자는 특정 주파수의 두 정현파 전압을 합산하여 얻은 신호로 인코딩됩니다. 각 그룹에는 4개의 오디오 주파수로 구성된 두 그룹이 사용됩니다.

표 1. DTMF 다이얼링의 주파수 및 기호 대응

DISA(Direct Inward System Access)는 가입자가 전화의 DTMF 신호를 사용하여 전화 교환기 또는 전화 통신 서버를 제어하기 위해 액세스 권한을 얻을 수 있도록 하는 직접 액세스 기능입니다.

셀룰러 시장 개요

보고서에서 알 수 있듯이 러시아에서 셀룰러 통신을 제공하는 회사의 수익은 증가하고 있습니다. 동일한 보고서에 따르면 수익의 상당 부분이 모바일 통신에서 발생합니다. 이동 통신 비용을 줄이는 것은 일반 개인 사용자와 기업 플레이어 모두에게 이익이 됩니다. 한 달에 이용하는 서비스를 분석해 이동통신사에서 가장 적합한 요금제를 선택하는 것도 하나의 방법이다.

모스크바의 모바일 통신 시장은 3개의 플레이어로 구성되어 있으며, 그 분포는 다음에서 확인할 수 있습니다.

도표 1: 휴대폰 시장의 주요 업체 분포

비교모스크바의 현지 관세

모스크바 시장의 세 주요 업체는 비교할 수 있는 유사한 패키지 관세를 가지고 있습니다. 예를 들어 MTS의 경우 "Smart" 클래스 관세, Megafon의 경우 "All Inclusive", Beeline의 경우 "Everything for"가 있습니다. 이 관세는 옵션 패키지와 구독료를 제공합니다. 이 클래스의 비슷한 가격의 관세를 비교해 보겠습니다. 서비스 패키지에는 SMS, MMS, 인터넷 및 기타 서비스가 포함될 수 있지만 통화 가격에 관심이 있으므로 이 분석에서는 이러한 서비스를 고려하지 않습니다. 같은 이유로 가격에 직접적인 영향을 미치지 않는 한 요금의 뉘앙스에 대한 자세한 설명은 없습니다. 그러나 해당 지역의 통신 품질은 통신 사업자마다 크게 다를 수 있음을 알 수 있습니다. 월별 요금 한도를 초과한 경우에도 통화 비용을 계산할 필요가 없습니다. 비용을 통제하는 사람이 요금을 올바르게 선택하기 때문입니다. 그러나 한도를 초과한 후의 가격이 상당히 높을 수 있다는 점은 주목할 가치가 있습니다. 세 가지 패키지 그룹 모두 러시아 내 수신 전화가 무료라는 점은 주목할 가치가 있습니다.

최소 가격은 패키지 관세 "Smart mini" - 200?, "All inclusive XS" - 199?입니다. 그리고 "All for 200" - 200?. 교환원 네트워크 내 통화에는 몇 가지 기능이 있습니다. "스마트 미니"와 "올인클루시브 XS"는 러시아 전역에서 통화가 가능하며, "All for 200"은 모스크바와 모스크바 지역에서만 통화가 가능합니다. 가격은 2015년 5월 15일 기준입니다.

표 3. 최소 패키지 요금

표에서 볼 수 있듯이 관세 옵션은 매우 유사합니다. 네트워크 내 통화가 가장 저렴합니다. 특히 모스크바 지역 이외의 지역에서는 다른 통신업체의 가입자가 전화하는 것이 더 비쌉니다.

이 요금은 다른 국가로의 통화를 위한 것이 아니지만, 자신의 국가가 아닌 곳으로 전화를 걸어야 할 수도 있으므로 다른 국가로의 통화에 대해서는 국제 요금을 고려해 볼 가치가 있습니다.

표 4. 최소 패키지 요금(해외 통화)

CIS, 분당 루블

24 또한 크리미아 공화국과 세바스토폴 시에도 적용됩니다.

유럽, 분당 루블

기타 국가, 분당 루블

미국, 분당 루블

캐나다, 분당 루블

호주 및 오세아니아, 분당 루블

아시아, 분당 루블

네트워크 내 CIS, 분당 루블

북미 및 중미(미국 및 캐나다 제외), 분당 루블

표에서 볼 수 있듯이 관세는다른 나라로의 전화는 이미 상당히 다릅니다. Beeline은 저렴한 가격으로 다른 국가의 Beeline 번호로 전화할 수 있는 기회를 제공합니다. Megafon은 국가마다 가격 차이가 더 많은 반면 MTS는 유럽에 단일 가격이 있고 다른 모든 국가에 단일 가격이 있습니다.

표 5. 소형 포장물 요금

최소 패키지 요금의 경우와 마찬가지로 조건은 매우 유사하지만 가격이 다릅니다.

"스마트" 패키지에 대한 다른 국가로의 통화에 대한 MTS 가격은 "All Inclusive" 패키지에 대한 Megafon과 마찬가지로 다르지 않지만 Beeline의 "All for" 패키지는 해외 가격이 약간 다릅니다.

· "All for 400" 관세: "All for 200" 조건 + 하루 첫 10분 비용은 5?(CIS 국가, 크리미아 및 세바스토폴에 전화하는 경우)

· "All for 600" 요금에서: "All for 400" 조건 + 하루 최초 10분 비용은 7?, 아제르바이잔, 벨로루시, 몰도바에 전화하는 경우

· "All for 900" 요금제에서: "All for 600" 조건 + 하루 최초 10분 비용은 5?, 유럽, 미국, 몰도바에 전화하는 경우

· "All for 1500" 관세: "All for 900" 조건 + 몰디브, 마다가스카르, 부룬디, 북한, 파푸아뉴기니, 세이셸, 소말리아, 토켈라우, 튀니지, 1분 비용은 55?

표 6. 평균 패키지 요금

동일한 지역 요금으로 Megafon의 러시아 내 다른 통신사에 대한 통화 가격은 3.3배 저렴합니다.

표 7. 평균 이상의 관세 패키지

동일한 지역 요금으로 MTS에서 러시아의 다른 사업자에게 거는 통화 가격은 3.3배 저렴합니다.

표 8. 대형 관세 패키지

이 지역 관세는 거의 동일한 조건을 갖습니다.

결론

네트워크 내 통화에 패키지 요금을 사용하는 경우 패키지 요금이 매우 유리합니다. 경쟁 사업자는 가격을 거의 동일한 수준으로 유지합니다. 하루에 20~60분 정도 통화하는 일반 가입자에게는 이러한 요금이 적합합니다. 하루에 120분 이상 통화해야 하는 경우 1500~2500 범위의 더 비싼 관세 패키지를 선택해야 하며 이는 이미 상당히 비쌉니다.

국제로밍은 서로 다른 조건을 가지고 있습니다. 이 로밍은 세 사업자 모두에게 비용이 많이 듭니다. 30분 통화는 서비스 패키지 비용을 초과할 수 있습니다. 가입자가 다른 국가로 전화를 걸어야 한다면 다른 요금제를 선택하는 것이 좋습니다.

다른 국가로의 전화 요금

다른 국가로의 통화 요금은 세 그룹으로 나뉩니다.

1. 관광객의 친척, 친구에 대한 관세

2. 이민자에 대한 관세

3. 기업인에 대한 관세

관광객의 친척 및 친구에 대한 관세

관광객의 친척과 친구에 대한 관세를 비교하기 위해 인기 있는 휴양지 5곳을 선택했습니다.

1. 스페인

관광객이 전체 여행 동안 유선 전화 근처에 앉을 가능성이 낮기 때문에 이러한 방향으로의 전화는 휴대 전화로 전화할 때만 고려됩니다.

MTS에는 "수익성 있는 국제 전화" 요금 옵션이 있습니다. 월간 구독료는 50?입니다. 이 5개 방향으로의 통화 요금은 분당 10루블입니다. 관세 옵션은 "스마트"와 같은 다른 관세와 호환됩니다.

Beeline에는 "환영" 관세가 있습니다. 이 관세로 전환하는 비용은 150?이며, 관세에 대한 월 가입비는 없지만 일일 요금은 4.45?입니다. 요금에 포함된 옵션에 대해 터키로 거는 통화료는 6 인가요? 잠시 후. 아쉽게도 5개 관광국 중 나머지 국가에 대한 정보는 없습니다. 링크를 따라가는 관세 페이지에서:

http://moskva.beeline.ru/customers/products/mobile/tariffs/details/dobro-pozhalovat/

그림 10. Beeline "Welcome" 관세 페이지의 영역 스크린샷

주소로 리디렉션되는 전환:

http://moskva.beeline.ru/customers/products/mobile/roaming/roaming-new/

페이지 인터페이스에는 세 개의 하이퍼링크가 포함되어 있습니다.

그림 11. "로밍, 장거리 및 국제 통신" 페이지의 인터페이스

"세계 여행 시 로밍", "러시아 여행 시 로밍", "집에서 다른 도시 및 국가로 전화". 당연히 다른 국가로 거는 통화 가격은 세 번째 하이퍼링크에 표시되어야 합니다. 이 링크의 페이지는 Beeline 서버에 정보를 요청하기 위한 인터페이스를 제공합니다.

그림 12. "Welcome" 관세가 포함된 "Cyprus" 요청 후 "집에서 다른 도시 및 국가로 전화" 페이지의 스크린샷

예를 들어 키프로스의 가격을 확인하면 키프로스의 가격 대신 일반 관세 조건이 표시됩니다. 키프로스에는 특별한 조건이 없습니다. "다른 국가로의 통화" 섹션에는 주소가 포함된 "국제 통신 요금에 따라"라는 하이퍼링크가 있습니다.

http://moskva.beeline.ru/customers/products/mobile/roaming/

이전에 표시된 대로 이 정보를 사용할 수 없습니다.

정보를 의도적으로 숨긴 것인지, 아니면 인터페이스 설계상의 오류인지는 단정하기 어렵습니다. 현재 Beeline 담당자로부터 건전한 설명을받지 못했기 때문에 공식적인 정보가 없으면 Beeline 관세를 비교하는 것이 불가능하다고 생각합니다.

다른 국가로의 통화를 위한 Megafon은 "모든 국가에 통화" 옵션을 제공합니다. 처음 30일 동안은 60의 수수료가 부과되고 그 다음에는 일일 수수료가 2? 하루 만에. 이탈리아, 스페인, 키프로스, 그리스로 거는 통화료는 6인가요? 분당, 터키 8? 잠시 후.

이민자를 위한 관세

이민자에 대한 관세는 CIS 국가 및 주변 국가의 가격을 고려합니다.

"수익성 있는 국제 전화" 옵션의 MTS는 15달러의 가격으로 CIS(아제르바이잔 및 벨로루시 제외)에 전화를 제공합니까? 분당 아제르바이잔과 벨로루시까지 20의 가격으로? 잠시 후.

Beeline은 "환영" 관세에서 타지키스탄에 대한 특별한 조건을 가지고 있습니다. Beeline 번호로 전화하는 경우 1분 - 7?, 이후 1분?. 아르메니아, 카자흐스탄, 키르기스스탄의 Beeline 번호와 우크라이나의 Kyivstar 번호로 통화하려면 - 2.5 ? 잠시 후. 타지키스탄, 아르메니아, 우크라이나, 카자흐스탄, 키르기스스탄의 다른 번호와 투르크메니스탄의 모든 번호(7)로 전화하려면? 잠시 후. 아제르바이잔과 벨로루시로 거는 통화료는 13인가요? 잠시 후. 우즈베키스탄 Beeline으로-번호 3 개? 분당 나머지 4? 잠시 후.

"모든 국가에 전화" 옵션에서 Megafon에서 아제르바이잔 및 벨로루시로 전화하는 데 드는 비용은 15입니다. 분당 우크라이나로-10? 분당, 아르메니아, 카자흐스탄, 키르기스스탄 - 8? 분당 타지키스탄과 투르크메니스탄에 - 6? 분당 우즈베키스탄까지 - 5? 잠시 후. Megafon에는 타지키스탄을 위한 특별한 "Tajikistan+" 옵션도 있습니다. 대화의 첫 1분은 7Ω, 20분까지는 1Ω, 21분부터는 7Ω의 비용이 듭니다.

사업가를 위한 관세

사업가는 어떤 국가와도 의사소통이 필요할 수 있습니다. 이 검토의 목적은 다양한 관세의 가격 수준을 비교하는 것이지 모든 국가의 가격을 완전히 비교하는 것이 아니므로 사업가가 전화할 수 있는 5개 국가를 선택했습니다.

3. 독일

5. 영국

"유익한 국제 전화" 옵션의 MTS는 1.5에서 중국으로 전화를 걸 수 있습니까? 분당, 미국 5? 분당, 독일과 영국은 10? 분당 일본에 25? 잠시 후.

Beeline의 "환영"관세는 2에 대한 중국 통화를 제공합니까? 잠시 후.

"모든 국가에 전화" 옵션의 Megafon은 1에 대해 중국에 전화를 걸 수 있습니까? 분당, US 4 ? 분당 독일은 6? 분당, 영국은 11시입니까? 분당 9시에 일본으로? 잠시 후.

결론

고려되는 관광지의 경우 가장 수익성이 높은 옵션은 Megafon의 "모든 국가에 전화"옵션입니다. Beeline에 대한 데이터가 충분하지 않습니다.

이민자를 고려한 방향에서 Beeline과 Megafon의 가격은 MTS가 가장 비쌉니다.

사업가를 위해 고려되는 영역에서는 MTS와 Megafon의 가격이 경쟁합니다. Beeline에 대한 데이터가 충분하지 않습니다.

로밍

많은 이동통신사는 이동통신사의 SIM 카드를 사용하여 다른 이동통신사의 네트워크에 연결할 수 있는 로밍 서비스를 제공합니다. 장거리 및 국제 로밍이 있습니다. 가입자가 기차를 타고 여행하는 경우 장거리 로밍이 필요할 수 있습니다. 이러한 가입자는 지도에서 자신의 위치를 ​​빠르게 변경할 수 있으므로 이동하는 각 지점에 대해 현지 운영자로부터 현지 SIM 카드를 구입할 수 없습니다.

국제 로밍은 일반적으로 장거리 로밍보다 요금이 더 비쌉니다.

국제 로밍의 경우 MTS는 "Zero Without Borders" 서비스를 제공합니다. 이 서비스의 가입비는 60? 하루 만에. 일부 목적지의 경우 처음 10분 동안의 수신 전화는 무료일 수 있지만, 월별 한도인 200분을 사용한 후에는 각 수신 분당 25? 잠시 후.

그리스, 독일, 터키의 경우 "무료 여행" 서비스를 이용하는 것이 더 유리할 것입니다. 구독료는 100인가요? 하루 만에. 이 서비스는 러시아 번호로 수신 및 발신 전화를 하루 60분 동안 제공합니다.

표 9. '국경 없는 제로' 관광지별 가격

대부분의 경우 이민자가 현지 관세를 획득하는 것이 어렵지 않을 것이므로 이 영역은 CIS 국가에 대해 별도로 고려되지 않습니다.

사업가의 경우 항상 같은 번호로 연락하는 것이 중요하므로 SIM 카드를 로컬 카드로 변경하는 데 동의하지 않을 것입니다.

그림 13. '국경 없는 제로' 사업 방향별 가격

독일

대 브리튼 섬

수신 전화(처음 10분), 분당 루블

수신 전화(11분부터), 분당 루블

러시아 번호로 발신 전화(1분, 6분부터 시작), 분당 루블

러시아 번호로 거는 전화(2~5분), 분당 루블

호스트 국가 번호로 발신 전화, 분당 루블

다른 국가로의 발신 통화, 분당 루블

국제 로밍의 경우 Beeline은 "My Planet" 서비스를 제공합니다. 서비스 연결 비용은 25?입니다. 모든 관광지까지 수신전화 요금은 15? 분당, 어느 국가로나 호스트 국가 내에서 25? 잠시 후. 일본을 제외한 이웃 국가와 앞서 언급한 비즈니스 방향에 대해 동일한 가격이 적용되는 19개 국가는 무엇입니까? 분당 발신 49.

국제 로밍의 경우 Megafon은 "전 세계"와 "전 세계"의 두 가지 옵션을 제공합니다. "The Whole World"는 가입비 39로 하루 30분 무료 수신전화를 제공합니다. 노크에. "Around the World"는 15로 연결되나요? 일일 구독료는 9?입니다. 유럽과 CIS, 터키, 압하지야, 남오세티아 내 수신 및 발신 통화 비용은 6입니다. 분당, 일본의 경우 9? 미국과 중국의 경우 분당 36? 잠시 후. Megafon은 러시아로 전화할 때 콜백을 사용합니다.

결론

국제 로밍은 다른 요금제와 달리 유료 수신 전화가 있을 수 있으며 가격은 200에 달할 수 있나요? 잠시 후.

시장 리뷰 VoIP 통신

셀룰러 사업자 외에도 VoIP(Voice over IP) 전화 통신 서비스를 제공하는 사업자가 있습니다. 이 연결의 주요 차이점은 인터넷을 사용하여 가입자를 연결한다는 것입니다. 일부 회사는 다양한 VoIP 서비스를 제공하며, 인터넷을 통해 한 VoIP 회사의 두 명 이상의 가입자를 연결하는 경우가 종종 있습니다. 이러한 서비스는 Skype, Hangouts, Viber 제품을 통해 제공됩니다.

VoIP는 인터넷뿐만 아니라 셀룰러 네트워크를 통해서도 통신할 수 있습니다. 이를 위해 GSM-VoIP 게이트웨이가 사용됩니다. VoIP 서버의 경우 최소 비용 라우팅(번호에 따라 통화 경로 자동 선택)을 구성할 수 있습니다. 서버 자체는 네트워크 액세스에 가장 유리한 요금을 선택하므로 통신 비용이 절감됩니다.

VoIP 가격은 환율에 따라 달라지거나 비교를 위해 다른 통화로 표시될 수 있습니다. 모든 가격은 러시아 연방 중앙은행 웹사이트에 표시된 환율에 따라 루블로 변환됩니다. 해당 날짜의 요금:

표 10. 2015년 5월 26일 기준 환율

Skype는 키프로스 휴대전화 번호로 거는 통화 요금을 다음과 같이 제공합니다.

표 12. 키프로스로 거는 통화에 대한 Skype 가격

Skype는 터키 휴대폰 번호로 거는 통화 요금을 다음과 같이 제공합니다.

표 13. 터키로 거는 통화에 대한 Skype 가격

Skype는 미국 휴대폰 및 유선전화에 대해 다음과 같은 요금을 제공합니다.

표 14. 미국으로 거는 Skype 통화 가격

Skype는 일본 내 휴대폰 번호로 거는 통화 요금을 다음과 같이 제공합니다.

표 15. 일본으로 전화할 경우 Skype 가격

스카이프중국 내 휴대전화 및 유선전화 통화 요금은 다음과 같습니다.

표 16. 중국으로 전화할 경우 Skype 가격

검토된 Skype 요금제를 토대로 상위 3개 셀룰러 네트워크의 유사한 요금제보다 수익성이 더 높을 수 있다는 결론을 내릴 수 있습니다.

바이버

Viber Out은 다음 요금을 제공합니다:

표 17. Viber Out 가격

VoIP 서버는 일반 컴퓨터에 설치할 수 있으므로 기업 내에서 클라이언트와의 통신이나 인트라넷 통신을 위해 VoIP 솔루션을 사용하는 경우가 많습니다. 이 연결은 시스템 관리자가 제어할 수 있습니다. 그는 통신 보안을 구성하고 대화를 직접 녹음할 수 있습니다. 호출 클라이언트가 가상 PBX가 허용하는 DTMF 모드에서 명령을 입력할 수 있도록 서버에 대해 DISA를 구성할 수 있습니다. 또한 이러한 서버에 대해 게이트웨이를 구성하여 전화를 걸고 셀룰러 신호를 받을 수도 있습니다.

결론

VoIP를 사용하면 특히 무료이고 안정적인 인터넷이 있는 곳에서 통신 비용을 줄일 수 있습니다. VoIP를 사용하면 로밍에 대해 걱정할 필요가 없습니다. VoIP 요금은 이동통신 사업자만큼 복잡하지 않습니다.

전화 통신 콜백 기능 개요

실제로 인터넷 통신은 적용 범위가 제한되어 있으며 인터넷 서비스 자체에는 비용이 듭니다. 동시에 VoIP 가격은 여전히 ​​매력적입니다.

인터넷을 통한 연결이 있지만 불안정한 경우 콜백 서비스가 구출됩니다. 가입자가 전화하려는 번호는 VoIP 서버로 전송되고 서버는 셀룰러 채널을 통해 가입자에게 다시 전화를 건 후 다른 가입자에게 전화를 걸어 두 가입자를 연결합니다. 인터넷 이용이 불가능한 경우에는 가입자 A가 호출한 가입자 B의 번호로 VoIP 서버 번호로 SMS를 보낼 수 있습니다. 콜백 전화 통신에 필요한 매개변수가 내장된 SIM 카드도 있습니다. 이들 통신업체는 VoIP를 사용하여 비용을 절감하므로 요금이 더 저렴합니다.

이러한 서비스는 MTS에서 제공됩니다. 가입자 번호에 *137* 코드가 추가되고 끝에 #이 추가됩니다. 요청을 보낸 후 수신 전화가 있습니다. 전화에 응답하면 요청에 포함된 가입자와 연결이 시작됩니다. 회신 비용은 가입자의 거주 국가에 따라 다릅니다.

Megafon은 또한 다음 서비스를 제공합니다. Around the World 서비스가 활성화된 경우 정상적으로 전화를 걸 때 콜백이 발생할 수 있습니다.

DTMF 신호를 사용하여 가입자 "B"의 수를 가입자 "A"에서 서버로 전송하는 또 다른 방법이 있습니다. 이 방법은 모든 최신 전화기가 DTMF 신호를 생성할 수 있고 많은 교환원으로부터 걸려오는 전화가 무료이기 때문에 좋습니다.

Android 운영 체제를 사용하는 모든 휴대폰은 DTMF 신호를 생성할 수 있으므로 이 방법은 가장 보편적이며 추가 서비스 연결을 최소화하고 SIM 카드가 필요하지 않습니다. 이것이 바로 자신의 VoIP 서버 소유자가 가입자와 통신하는 데 사용할 수 있는 방법입니다.

콜백 기능을 쉽게 사용할 수 있는 기능을 갖춘 프로그램 분석

직접 구현운영자와 연결되지 않은 DTMF 콜백 애플리케이션은 찾기가 어렵습니다.

DTMF 콜백을 사용할 때 유용할 수 있는 함수 구현이 있습니다.

이러한 구현 중 하나를 가장 흔히 접두사라고 합니다. 이러한 프로그램은 수신 또는 발신 전화를 포착하고 소위 접두사 또는 접미사를 추가합니다. 즉, 번호 앞이나 뒤에 전화 번호를 추가하여 다음과 같은 유형의 번호가 생성됩니다. 접두사 xxxxxxxxx 접미사, 여기서 x는 임의입니다. 숫자의 문자.

콜백 구현에서 이러한 프로그램의 작업은 특정 이벤트 후에 DTMF 신호를 추가하는 것입니다.

접두사

이 문제에 대한 가장 가까운 해결책은 253°Below 회사의 Prefixer입니다. 이 프로그램에는 다음을 구성할 수 있는 규칙이 포함되어 있습니다.

씨. 프로그램 일정

디. 통화기록에 기록될 번호

이자형. 규칙이 적용되는 숫자

프로그램 인터페이스에서 다음과 같이 수신 및 발신 통화 모두에 대한 규칙을 구성할 수 있습니다. 즉, 전화가 오면 프로그램에서 번호를 추가해야 합니다. 이론적으로는 일시 정지를 의미하는 접미사 “,”를 보내거나 “;”을 붙이면 됩니다. 발신음을 기다리려면 해당 번호를 DISA로 보내면 됩니다.

그림 14. 접두사 스크린샷 "

나가는 전화의 경우 프로그램은 실제로 접두사와 접미사를 추가하지만 들어오는 전화의 경우 구성된 규칙과 달리 아무것도 추가하지 않습니다. 즉, 실제로 DTMF 콜백 통신에는 사용할 수 없지만 MTS에서 콜백을 구현하는 데에는 사용할 수 있습니다.

키보드에서 특정 문자나 문자 그룹을 입력하는 방법이 있습니다. 대부분의 경우 이러한 기능을 갖춘 프로그램은 키보드 또는 Android 제어 인터페이스의 기능을 확장하는 데 사용됩니다. 콜백 서버가 다시 전화할 때 가입자가 메모리에서 전체 번호를 입력하는 것을 방지하기 위해 번호 누르기 에뮬레이션을 사용할 수 있습니다. 이 경우 전화기는 마치 사용자가 직접 입력한 것처럼 DTMF 신호를 보냅니다. 이 기능을 갖춘 프로그램은 꽤 많습니다.

게임키보드

이 기능을 테스트하기 위해 Locnet의 Gamekeyboard를 사용했습니다. 프로그램을 사용하려면 루트 권한이 필요합니다. 이 프로그램에는 어떤 문자가 어떤 간격으로 입력되는지 기록할 수 있는 매크로가 포함되어 있습니다. 매크로를 활성화하는 가상 버튼의 화면 크기와 위치를 사용자 정의할 수 있습니다. 휴대폰에서 이 프로그램에 대한 매크로를 만드는 것은 매우 어렵기 때문에 그 범위는 소수의 즐겨찾는 번호로 제한됩니다. 이 프로그램은 프로필을 지원하므로 이론적으로 전화를 건 번호에 대한 매크로를 생성하고 이를 버튼과 연결하는 애플리케이션을 개발하는 것이 가능합니다. 이 솔루션을 사용하면 가입자는 가입자 번호를 메모리에 저장하지 않고 전체 번호로 전화를 걸 수 없습니다. 그러나 사용자의 추가 작업은 여전히 ​​필요합니다.

루트 권한 - UNIX 시스템의 모든 기능에 액세스할 수 있는 권한입니다. Android는 UNIX와 유사한 운영 체제이므로 루트 권한도 제공하지만 휴대폰 제조업체에서는 루트 권한에 대한 액세스를 제한하는 경우가 많습니다. 제조업체에서는 소프트웨어로 루트 권한을 얻기 어렵게 만들고 플래싱을 금지할 수 있습니다. 제조업체는 루트 권한을 얻기 위한 도구를 자체적으로 제공할 수 있지만 루트 권한을 받은 사용자는 이를 보장하지 않습니다. 그럼에도 불구하고 일부 기능을 구현하는 유일한 방법은 루트 액세스 권한을 갖는 것입니다.

결론

DTMF 콜백에 대한 대부분의 솔루션은 특정 연산자의 사용을 기반으로 합니다. DTMF 콜백 사용을 단순화하는 소프트웨어 도구가 있지만 특별히 이 문제를 해결하기 위한 포괄적인 솔루션은 없습니다. DTMF 방식을 사용하여 VoIP 통신을 제공하는 것은 자신의 서버 소유자에게 유익합니다.

기술적인 부분

개발 도구 분석안드로이드용

Android용 사용자 정의 애플리케이션을 작성하기 위한 기본 언어는 Java입니다. Android 기능 작업을 위한 프로그래밍 인터페이스(API)에는 Java가 사용됩니다. Android용 Java로 작성된 애플리케이션을 만들려면 Android SDK(Software Sevelopment Kit)의 빌드 도구가 사용됩니다. 애플리케이션을 더 빠르게 실행하기 위해 C/C++로 애플리케이션을 작성하는 방법이 있습니다. 이를 위해 네이티브 개발 키트가 사용됩니다. 크로스 플랫폼 애플리케이션을 만들 수 있는 Xamarin이라는 C# 개발 솔루션이 있습니다. Android용 Python으로 개발하려면 표에 나열된 여러 솔루션 중 하나를 사용할 수 있습니다.

표 18. Android용 Python 구현 비교

안드로이드용 파이썬

안드로이드 스크립팅

파이썬 온 칩

kivy 프레임워크를 사용하면 크로스 플랫폼 애플리케이션을 만들 수 있습니다. Android용 Python과 연결할 수 있습니다. 그러면 Android에서 실행되는 크로스 플랫폼 애플리케이션을 작성하는 것이 가능해집니다. 래퍼를 사용하여 PyJNIus라는 Android API에서 Java 클래스를 호출하는 방법도 있습니다.

kivy 또는 Xamarin과 같은 솔루션은 애플리케이션이 Android뿐만 아니라 다른 플랫폼용으로 개발된 경우 장점이 있습니다. 단, Android 관련 기능을 사용하는 경우에는 Android API를 사용해야 합니다. Android에는 전화 기능 작동에 대한 고유한 특성이 있으므로 이는 현재 작업에 이점을 제공하지 않습니다.

시설 Android 개발용 - SDK 도구

Android 개발을 위한 주요 도구는 SDK 도구라는 툴킷에 포함되어 있습니다. 이 패키지에는 가상 장치 작업을 위한 도구가 포함되어 있습니다. Android Virtual Device Manager(AVD)는 에뮬레이터를 작동하고 구성하도록 설계되었습니다. 에뮬레이터를 만들려면 시스템 이미지가 사용됩니다. 이러한 이미지는 Android SDK Manager 프로그램의 그래픽 또는 콘솔 인터페이스에서 다운로드할 수 있습니다. Android SDK Manager 인터페이스에서 한 Android 버전에 대해 다양한 장치를 에뮬레이트할 여러 이미지를 선택할 수 있습니다.

그림 15. Android SDK 관리자 GUI의 스크린샷

중요한 도구 중 하나는 Android 기기를 디버깅하도록 설계된 프로그램인 Android Debug Bridge(adb)입니다. Adb는 명령줄에서 시작되고 콘솔 인터페이스를 통해 제어됩니다. Adb는 컴퓨터에 연결된 다양한 장치에서 작동합니다.

· USB를 통해 연결된 장치

· Wi-Fi를 통해 연결된 장치

· 에뮬레이트된 장치

Adb를 사용하면 다음을 수행할 수 있습니다.

· 장치에서 애플리케이션을 설치하거나 제거합니다.

· 장치의 명령 셸을 사용하여 작업

· 패킷 관리자와 협력

· 출시 의도

· LogCat으로 작업

SDK에는 개발 환경에 통합되는 대규모 도구 세트가 포함되어 있습니다. 예를 들어 빌드 도구는 Eclipse 또는 Android Studio에 포함되어 있습니다.

통합 개발 환경안드로이드 스튜디오

현재 Android의 공식 통합 개발 환경(IDE)은 Android Studio입니다. 이 IDE는 JetBrains의 IntelliJ IDEA를 기반으로 하며 다음과 같은 다양한 기능을 포함합니다.

· APK 구축을 위한 Gradle 스크립트

· 옵션 빌드 및 다중 APK 생성

· 코드 템플릿

· 레이어 편집기(레이아웃)

신청서 서명

· Google Cloud Platform에 대한 기본 지원 및 Google Cloud Messaging과 App Engine을 통합하는 기능

Android Studio를 사용하면 adb를 통해 연결된 여러 기기에 조합된 애플리케이션을 병렬로 설치할 수 있습니다.

Android Studio는 버전 제어 시스템을 지원합니다.

Android 스튜디오의 소스 코드 편집기에는 개발을 더 쉽게 해주는 다양한 기능이 있습니다.

· 단어 자동 완성

· 코드 오류에 대한 힌트

· java 및 xml 파일에 대한 구문 강조

· Android 라이브러리의 클래스를 사용하는 경우 Android 라이브러리에서 자동으로 가져오기

· 사용되지 않은 변수를 회색으로 표시

· 코드 줄에 주석 달기

· 강조 표시된 단어를 찾기 위해 다양한 프로젝트 파일을 뛰어넘습니다.

Android Studio는 Android용으로 개발할 때 사용을 권장하는 강력한 도구이므로 개발에 사용하기로 결정했습니다.

전화 통신 콜백 안드로이드 프로그래밍

Python 프로그래밍 언어 개요

Python은 다음과 같은 여러 프로그래밍 패러다임을 결합한 고급 언어입니다.

· 객체 지향 프로그래밍. 파이썬에서는 문자열, 클래스, 숫자 등 모든 것이 객체입니다. 예를 들어 숫자 "1"에 숫자 "2"를 추가하면 다음과 같습니다.

그러면 __add__ 메소드가 실제로 객체 1에서 호출되어 Integer 유형을 수신하므로 다음 항목은 동일한 결과를 제공합니다.

· 동적 타이핑. 유형은 프로그램 실행 중에 자동으로 설정됩니다. 이러한 유형의 타이핑의 장점은 프로그램 작성이 쉽고 프로그래머가 이 방법을 빠르게 익힐 수 있다는 것입니다. Python에서는 유형을 직접 지정할 수 있습니다. "type" 기능을 사용하면 객체의 유형을 알아낼 수 있습니다. "int" 및 "float" 함수를 사용하면 유형을 변경할 수 있습니다. 따라서 숫자 1을 값 1이 포함된 문자열 또는 부동 소수점 숫자로 표현할 수 있습니다. 예:

>>> b = str(1)

>>> c = float(1)

변수의 종류를 확인해보면 "a"는 "int", "b"는 "str", "c"는 "float"가 됩니다.

>>> 인쇄 유형(a)

>>> 인쇄 유형(b)

>>> 인쇄 유형(c)

· 엄격한 타이핑. Python은 일반적으로 강력한 형식의 개체 언어로 간주됩니다.

· 함수형 프로그래밍. Python을 사용하면 재귀, 지연 평가 및 고차 함수를 사용할 수 있습니다.

· 명령형 프로그래밍. Python은 절차적 프로그래밍 방식을 지원하며 Python에서 모듈을 사용할 수 있습니다.

Python은 매우 간단한 언어로 간주되며 미국 대학에서 공부하는 데 가장 인기 있는 언어입니다.

Python 코드는 한 줄씩 실행되므로 코드의 오류는 해당 줄을 실행한 후에만 알 수 있는 경우가 많습니다. Android용 Python을 사용하여 만든 프로그램은 실행하는 데 꽤 오랜 시간이 걸립니다.

이러한 애플리케이션을 실행하려면 기술적 수단이 다음과 같은 특성을 가진 통신 장치여야 합니다.

· 애플리케이션을 설치하고 데이터를 저장하려면 기기 내부 메모리에 10MB의 여유 메모리가 있어야 합니다.

· 장치에는 다음 소프트웨어가 있어야 합니다.

ㅏ. 안드로이드 2.2 이상

비. OpenGL ES 2.0

내부 메모리 요구 사항은 설치된 애플리케이션에 Android 및 kivy용 Python이 포함된다는 사실에 따라 결정됩니다. Android용 Python을 실행하려면 Android 버전 2.2부터 사용할 수 있는 OpenGL ES 2.0이 필요합니다.

프로그래밍 언어 개요자바

Java는 객체 지향 프로그래밍 언어입니다. 컴파일러의 도움으로 Java 소스 코드는 Java 시스템에 대한 명령 세트가 포함된 바이트 코드로 변환됩니다. 이 접근 방식은 플랫폼 독립성을 제공합니다. Android 개발의 경우 Java 머신은 Dalvik입니다. 이러한 기계를 사용하면 생산성이 크게 저하될 수 있습니다.

객체 지향 측면에서 Java의 개념은 Python과 유사합니다. “Java에는 특별한 슈퍼클래스 Object가 있고 모든 클래스는 해당 서브클래스입니다. 따라서 Object 클래스의 참조 변수는 다른 클래스의 개체를 참조할 수 있습니다.

Java에는 클래스 수정자 private, public, protected 또는 수정자의 부재로 지정되는 유연한 액세스 제어 시스템이 있습니다.

표 19. Java의 수정자 및 액세스

전화 기능의 단순화된 사용을 위한 인터페이스 개발콜백

사용자를 위한 가장 간단한 인터페이스는 시스템의 표준 인터페이스입니다. 콜백 함수 사용 시 호출 알고리즘은 일반적인 호출 초기화 알고리즘과 다르지 않아야 합니다.

이러한 프로그램의 인터페이스는 다음 기능을 구현하는 데 도움이 됩니다.

1. 콜백

o 연락처(연락처)에서 통화가 시작되면 애플리케이션을 실행합니다.

o 전화 통신 서버에 대한 통화 초기화

o 전화 통신 서버로부터 전화 받기

o 통신 채널이 설정되었는지 확인

o 서버의 DTMF 신호 분석

o 통화 중 DTMF 신호 전송

2. 역사 작업

o 시스템 호출 기록 로그에서 정보를 삭제하는 기능

o 시스템 호출 기록 로그에 정보를 추가하는 기능

3. 설정

o 프로필 활성화/비활성화

o 프로필 선택 기능

o 프로필을 사용자 정의하는 기능

o 프로필 추가 기능

o 프로필 삭제 기능

4. 프로필

o 서버 번호 변경 기능

o 서버 번호의 화이트리스트를 설정하는 기능

o 서버로부터의 콜백 대기 시간을 지정하는 기능

o DTMF 신호 전송 간격을 지정하는 기능

이러한 기능을 갖춘 응용 알고리즘은 다음과 같습니다.

사용자가 처음으로 애플리케이션을 열고 프로필을 만듭니다. 프로필에서 사용자는 전화 통신 서버 번호를 지정합니다. 사용자는 전화 서버가 다시 전화할 번호를 화이트리스트에 입력합니다. 사용자는 설정에서 대기 시간을 지정합니다. 서버에서 콜백이 없으면 사용자는 애플리케이션을 수동으로 끄지 않고도 전화 통신을 계속 사용할 수 있습니다.

애플리케이션을 설정한 후 사용자는 연락처에 있는 사람에게 전화를 걸 수 있습니다. 이때 전화를 걸 수 있는 애플리케이션을 선택하는 메뉴가 나타납니다. 사용자가 DTMF 콜백을 선택하면 연락처 번호가 애플리케이션에 저장되고 애플리케이션 자체가 서버와의 통화를 시작합니다. 서버 연결이 끊어지고 다시 전화하면 애플리케이션은 전화에 응답하고 터치 톤으로 저장된 번호로 전화를 겁니다. 그 후 사용자는 전화를 받은 가입자와의 연결을 기다려야 합니다.

통화가 끝난 후에도 사용자가 전화한 가입자의 번호는 통화 기록에 남아 있어야 합니다. 통화 시간 계산은 전화를 거는 순간부터 시작되어야 합니다.

콜백 기능의 사용을 단순화하는 방법을 보여주는 프로토타입 개발

실제 역량과 개발 경험이 전혀 없는 것을 바탕으로 Android, 프로토타입의 최소 요구 사항이 개발되었습니다.

1. 프로토타입은 Android 2.1부터 Android 5.1까지 모든 최신 Android 기기에서 실행되어야 합니다.

2. 프로토타입은 전화 서버가 콜백할 때 가입자 번호로 전화를 걸기가 더 쉬워야 합니다.

3. 프로토타입을 통해 가입자 번호로 전화를 걸 때 전화 서버 번호로 통화를 시작해야 하며 동시에 가입자가 전화한 번호를 기억해야 합니다.

지정된 번호로 통화 초기화

개발의 첫 번째 단계는 애플리케이션 코드에 지정된 번호로 호출할 수 있는 애플리케이션을 작성하는 것이었습니다. 변수 값을 외부 소스에서 가져오지 않고 코드 내에 하드코딩하는 방식을 하드코딩이라고 합니다. 이 방법은 매번 전화를 걸지 않도록 응용 프로그램을 빠르게 테스트하기 위해 특별히 사용됩니다.

저는 Python 프로그래밍 언어로 글을 쓴 경험이 있기 때문에 Python 프로그래밍 언어로 글을 쓰기로 결정했습니다. 이를 구현하려면 Android API에서 Java 클래스 android.intent.action.CALL을 연결해야 했습니다. 이 애플리케이션의 목적은 모든 가입자를 호출하는 애플리케이션의 기능을 테스트하는 것입니다. 이 기능은 가입자 A가 가입자 B의 번호로 전화를 걸면 텔레포니 서버 번호로 통화가 시작되기 위해 필요합니다. 이 기능을 구현한 후, 내 경험에도 불구하고 Python용 애플리케이션을 작성하면 명백하지 않은 많은 문제가 발생하고 결과적으로 완성된 애플리케이션을 로드하는 데 너무 오랜 시간이 걸리며 이는 전화 통신에 매우 중요하다는 것이 분명해졌습니다. 또한 Java 프로그래밍 언어에 대한 지식 없이 API를 이해하는 것이 매우 어렵다는 것도 분명해졌습니다. 여전히 Java 프로그래밍 언어에 대한 이해가 필요하고, Java로 최종 결과를 내는 것이 유리하기 때문에 Android Studio를 사용하여 Java용으로 함수를 다시 작성하기로 결정했습니다. 다음은 Java의 최종 함수에 대한 코드입니다.

공개 무효 통화(보기 보기) (

mNumberTextView.setText("호출됨 " + tel.getText() + " 초기화됨");

String toDial = "tel:" + tel.getText().toString();

startActivity(new Intent(Intent.ACTION_CALL, Uri.parse(toDial)));

연락처에서 번호 받기

다른 애플리케이션에서 Android 애플리케이션을 호출하려면 명시적 및 암시적 인텐트를 사용할 수 있습니다. 명시적 인텐트는 호출해야 하는 클래스를 지정합니다.

인텐트intent_about = new Intent(MainActivity.this, AboutActivity.class);

startActivity(intent_about);

AboutActivity.class 활동은 Android.Manifest.xml에 등록되어 있으므로 시스템은 어떤 활동을 시작해야 하는지 알 수 있습니다.

암시적 인텐트에는 실행해야 하는 클래스 대신 시스템이 반응해야 하는 작업이 표시됩니다. Android의 표준 연락처(연락처)에서 호출되면 ACTION_CALL_PRIVELEGED 작업이 발생합니다. "tel:" 번호가 이 작업으로 전달됩니다. 예를 들어, 다음과 같이 작성하여 adb를 사용하여 이 작업을 호출할 수 있습니다.

adb -e 쉘 오전 시작 -a android.intent.action.CALL_PRIVILEGED -d tel:911

여기서 100은 전화가 걸릴 번호입니다. 명령어를 쓰면

adb 쉘 오전 시작 -a android.intent.action.CALL -d tel:911

이 경우 해당 번호로 전화를 걸 수 있는 권한이 없기 때문에 통화가 이루어지지 않습니다. 필요에 따라 다양한 애플리케이션이 다양한 작업을 사용할 수 있습니다. 긴급 전화가 예상되지 않는 경우 ACTION_CALL이 사용됩니다. 이는 연락처 번호가 있는 브라우저나 애플리케이션에서 전화를 걸 때 더 일반적인 경우입니다.

일부 펌웨어에서는 대체 응용 프로그램을 연락처로 사용할 수 있습니다. 본 애플리케이션의 소스코드 자체가 비공개되어 있을 수 있습니다. 이러한 애플리케이션에서 호출이 다른 방식으로 시작되면 호출이 시작되는 인텐트를 추측하기 어려울 수 있습니다. 이 경우 Google Play 또는 기타 신뢰할 수 있는 소스에서 대체 연락처를 설치할 수 있습니다.

프로그램이 암시적 인텐트를 가로채려면 AndroidManifest.xml에 인텐트 필터를 추가해야 합니다.

연락처 번호 만 가져 가면 구성표에 "tel"이 표시됩니다.

이제 Android 운영 체제에서는 ACTION_CALL 또는 ACTION_CALL_PRIVILEGED 인텐트가 호출될 때마다 애플리케이션을 호출하라는 메시지를 표시합니다.

애플리케이션이 "tel"에 있던 번호를 사용하려면 필요한 클래스에서 getData() 메서드를 사용해야 합니다.

버튼이 있는 부동 창

부동 창을 만들 수 있는 StandOut이라는 라이브러리가 있습니다. 라이브러리는 오픈 소스이며 예제가 있습니다. 이 라이브러리는 무료 MIT 라이센스에 따라 배포됩니다. 이 라이센스를 사용하면 이 라이브러리가 포함된 소프트웨어를 자유롭게 배포할 수 있습니다. 라이브러리는 있는 그대로 제공됩니다. 작성자는 이로 인해 발생할 수 있는 어떠한 손해에 대해서도 책임을 지지 않습니다.

이 라이브러리의 특징:

· 자신만의 VIEW를 제공합니다. 쉬운 통합.

부동 창 데코레이터:

1. 부동 창 제목

2. 플로팅창을 최소화하는 버튼

3. 플로팅창을 닫는 버튼

4. 창 크기 조정 버튼

· 최소화된 창을 복원할 수 있습니다.

· 다양한 유형의 창 생성

창문은 이동할 수 있습니다

이 라이브러리의 예제를 테스트할 때 통화 중을 포함하여 모든 창 위에 부동 창이 표시될 수 있다는 사실이 발견되었습니다. 이 기능을 사용하면 통화 중에 다이얼러에서 원하는 번호로 전화를 걸 수 있는 버튼을 만들 수 있습니다.

창을 만들려면 StandOutWindow 클래스의 확장이 될 클래스를 작성해야 합니다.

공개 클래스 FloatingButton은 StandOutWindow를 확장합니다(

공개 무효 createAndAttachView(int id, FrameLayout 프레임) (

LayoutInflater 팽창기 = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);

보기 보기 = inflater.inflate(R.layout.floating_button, 프레임, true);

그리고 res/layouts에는 이 창 float_button.xml의 인터페이스를 설명하는 레이어가 있습니다.

부동 창용 버튼

유사한 문서

    안드로이드 운영체제의 아키텍처와 역사. 자바 프로그래밍 언어. Android 애플리케이션을 구현하기 위한 도구를 선택합니다. Android 애플리케이션의 소프트웨어 구현. 개발된 소프트웨어의 테스트를 수행합니다.

    과정 작업, 2017년 1월 18일에 추가됨

    안드로이드 모바일 OS를 검토합니다. 도구 및 기술 선택. 그래픽 인터페이스 프로토타입 디자인. 사용자 인터페이스의 특성 및 설명. 데이터베이스 설계 및 개발. 필요한 권한 목록을 결정합니다.

    과정 작업, 2017년 9월 13일에 추가됨

    Android OS에서 날씨를 보기 위한 기존 인기 프로그램을 검토합니다. 최신 스마트폰의 운영체제. Android, Java 기술의 주요 기능. 소프트웨어 부분 개발, 언어 선택, 알고리즘 설명, 논리 구조.

    과정 작업, 2014년 4월 16일에 추가됨

    일련의 프로토콜과 장비를 사용하여 IP 네트워크를 통한 전화 통신 구현. IP 전화 통신 네트워크의 청구 및 관리 시스템을 위한 동적 통화 라우팅 하위 시스템 개발. 그래픽 사용자 인터페이스에 대한 기본 요구 사항.

    논문, 2015년 11월 8일에 추가됨

    약국 약국 체인을 위한 Android OS 기반 스마트폰 애플리케이션 개발. 안드로이드 운영체제의 아키텍처. 애플리케이션 아키텍처 및 구현. 그 기능. 모바일 애플리케이션에 대한 설명입니다. 제품 제작 비용 계산.

    논문, 2017년 6월 17일에 추가됨

    휴대폰에 사용되는 안드로이드 운영체제의 특징. Eclipse 개발 환경에서 Android 프로젝트를 생성합니다. 매니페스트 파일의 일반적인 구조와 기능. 안드로이드 애플리케이션 구성 요소. 표시 방법.

    과정 작업, 2012년 11월 15일에 추가됨

    Android 애플리케이션의 일반적인 작동 방식입니다. 텅 트위스터 발음을 통해 말하기 능력을 개발하는 것이 목적인 Android 운영 체제용 교육 애플리케이션 개발입니다. 개발된 애플리케이션의 구성요소와 테스트에 대한 설명입니다.

    논문, 2016년 2월 4일에 추가됨

    IP 텔레포니의 기본 개념과 IP 텔레포니 네트워크의 구조 유형. IP 텔레포니용 Cisco 시스템 음성 게이트웨이. IP IVR은 자동으로 전화에 응답하는 수단입니다. 분산 컨택 센터 구축의 장점, 구축 아키텍처.

    논문, 2016년 4월 21일에 추가됨

    Android 운영 체제의 일반적인 특성. 파일 관리자 생성을 기반으로 한 애플리케이션 개발. 응용 프로그램을 사용하여 인터넷의 "클라우드 저장소"에 저장된 파일에 액세스합니다. 소프트웨어 비용 계산.

    논문, 2015년 4월 3일에 추가됨

    Android 플랫폼 버전 2.3용 소프트웨어 개발: 축구 팀 팬을 위한 정보 애플리케이션으로, 이벤트, 통계, 팀과 성공에 대한 기타 정보를 볼 수 있는 기능을 제공합니다. JsonDataManager.java를 나열합니다.



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: