SMS 문제 해결

다른 외부 계정 간 충돌

인스턴스에 여러 SMS 외부 계정이 있는 경우 외부 계정 간의 충돌로 인해 문제가 발생하지 않는지 확인해야 합니다.

Adobe Campaign은 외부 계정을 관련 없는 엔티티로 처리합니다.

계정이 여러 개인 경우 다음 절차에 따라 문제를 일으키는 외부 계정을 분리하십시오.

  1. 모든 외부 계정을 비활성화합니다.
  2. 외부 계정 하나를 활성화합니다.
  3. 문제를 재현해 보세요.
  4. 초기 문제가 항상 나타나지 않는 경우에는, 결론을 내리기 전에 상당한 양의 시도를 해야 합니다.
  5. 해당 단일 계정에 문제가 표시되지 않으면 해당 계정을 비활성화하고 다음 계정의 2단계로 다시 시작하십시오.

모든 계정을 개별적으로 확인했으면 다음 두 가지 가능한 시나리오가 있습니다.

  • 그 문제는 하나 또는 여러 개의 계좌에 나타나 있다

    이 경우 각 계정에 대해 다른 문제 해결 절차를 개별적으로 적용할 수 있습니다. 네트워크 트래픽과 로그 수를 줄이기 위해 계정을 진단하는 동안 다른 계정을 비활성화하는 것이 가장 좋습니다.

  • 하나의 계정만 활성 상태인 경우에는 문제가 나타나지 않습니다

    계정 간에 충돌이 있습니다. 앞에서 언급했듯이 Adobe Campaign은 계정을 개별적으로 처리하지만, 공급자는 계정을 단일 계정으로 처리할 수 있습니다.

    • 모든 계정 간에 서로 다른 로그인/암호 조합을 사용합니다.
      해당 쪽에서 발생할 수 있는 충돌을 진단하려면 공급자에게 문의해야 합니다.

    • 일부 외부 계정은 동일한 로그인/암호 조합을 공유합니다.
      공급자는 BIND PDU이(가) 어느 외부 계정에서 오고 있는지 알 수 있는 방법이 없으므로 여러 계정의 모든 연결을 하나의 계정으로 처리합니다. MO와 SR을 두 개의 계정에 임의로 라우팅하여 문제가 발생할 수 있습니다.
      공급자가 동일한 로그인/암호 조합에 대해 여러 개의 짧은 코드를 지원하는 경우 BIND PDU에 해당 짧은 코드를 넣을 위치를 요청해야 합니다. BIND PDU가 MO를 올바르게 라우팅할 수 있는 유일한 장소이므로 이 정보는 BIND PDU 내부에 넣어야 하며 SUBMIT_SM에는 삽입하지 않아야 합니다.
      BIND PDU에서 사용할 수 있는 필드를 알려면 위의 각 PDU 섹션에 있는 정보를 참조하십시오. 일반적으로 address_range에 짧은 코드를 추가하지만, 이 경우 공급자의 특별한 지원이 필요합니다. 여러 짧은 코드를 독립적으로 라우팅하는 방법을 알아보려면 해당 팀에 문의하십시오.
      Adobe Campaign에서는 동일한 외부 계정에서 여러 개의 짧은 코드 처리를 지원합니다.

일반적으로 외부 계정 문제

  • 커넥터가 최근에 변경되었는지, 누가 변경되었는지 확인합니다(외부 계정을 그룹으로 확인).

    select saccount, (sserver ||':'||sport) as serverPort, iextaccountid, CASE WHEN N0.iactive=1 THEN 'Yes' ELSE 'No' END as "(x) Enabled",
    
    (select X1.sname from xtkoperator X1 where N0.icreatedbyid = X1.ioperatorid) as "Created By",
    
    (select X1.sname from xtkoperator X1 where N0.imodifiedbyid = X1.ioperatorid) as "Last Modified By",
    
    N0.slabel as "External Account", N0.tslastmodified as "LastModifiedDate"
    
    from nmsextaccount N0 LEFT JOIN xtkoperator X0 ON (N0.icreatedbyid=X0.ioperatorid) order by 8 DESC LIMIT 50;
    
  • 시스템이 업그레이드되었는지 여부와 시기를 조사합니다(/postupgrade%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC?lang=ko).

  • SMS에 영향을 주는 패키지가 최근에 업그레이드되었는지(/var/log/dpkg.log?lang=ko) 확인합니다.

공급자에 연결할 때 발생하는 문제

  • BIND PDU이 0이 아닌 command_status 코드를 반환하는 경우, 공급자에게 자세한 정보를 요청하십시오.

  • TCP 연결을 공급자에 연결할 수 있도록 네트워크가 올바르게 구성되어 있는지 확인합니다.

  • 공급자가 Adobe Campaign 인스턴스의에 IP를 제대로 추가했는지 허용 목록에 추가하다 확인하도록 합니다.

  • 외부 계정 설정을 확인합니다. 공급자에게 필드 값을 요청하십시오.

  • 연결이 성공했지만 불안정하면 연결이 불안정하면 문제 섹션을 확인합니다.

  • 연결 문제를 진단하기 어려운 경우 네트워크 캡처에서 정보를 제공할 수 있습니다. 문제가 나타나는 동안 네트워크 캡처가 동시에 실행되어 효율적으로 분석할 수 있는지 확인하십시오. 또한 문제가 표시되는 정확한 시간을 기록해야 합니다.

불안정한 연결 문제

다음 중 하나가 발생하면 연결이 불안정으로 간주됩니다.

  • MTA를 다시 시작하면 일시적으로 문제가 해결됩니다. 즉, 불안정한 연결이 Adobe Campaign Standard에서 MTA 조정을 트리거하여 MTA 전송률 조절을 재시작합니다. 근본 원인이 발견될 때까지 다시 발생합니다.

  • 공급자가 UNBIND PDU을 보냅니다.

  • enquire_link Adobe Campaign 쪽이나 공급자 측에서 시간이 초과됩니다. 이 경우 오류 코드가 0이 아닌 ENQUIRE_LINK_RESP이 표시될 수 있습니다.

  • BIND PDU이 많습니다. 연결 횟수에 따라 하루 중 몇 개 이상이 없어야 합니다. 시간당 1개 이상의 BIND PDU가 경고 대상이어야 합니다.

연결 안정성 문제를 해결하는 방법:

  • 불안정한 연결이 근본 원인은 거의 없으며, 단절을 트리거하는 다른 문제의 결과이기도 합니다. 근본 원인을 찾는 것이 우선입니다.

  • 자세한 SMPP 추적을 활성화합니다. 연결이 다시 시작될 때 발생하는 상황을 보려면 연결이 필요합니다.

  • 공급자가 BIND PDUs를 전송하는 경우 잘못된 것일 수 있습니다. UNBING이 전송되는 이유를 공급자에게 문의하십시오.

  • 네트워크 캡처를 수행하는 것이 때로 연결이 종료되는 방식을 확인하는 유일한 방법입니다.

  • 공급자가 TCP FIN 또는 TCP RST 패킷을 보내어 연결을 닫을 경우 자세한 내용을 공급자에게 문의하십시오.

  • 오류 코드와 함께 DELIVER_SM_RESP 같은 클린 오류를 보낸 후 공급자가 연결을 닫는 경우 다른 종류의 메시지가 전송되지 않도록 커넥터를 수정해야 하며 MTA 조절을 트리거합니다. 이는 연결을 닫으면 MT 및 SR 모두에 영향을 주는 송수신 모드에서 특히 중요합니다.

MT(최종 사용자에게 전송된 일반 SMS)를 보낼 때 발생하는 문제

  • 연결이 안정되었는지 확인합니다. SMPP 연결은 최소한 1시간 동안 지속적으로 유지되어야 합니다. 섹션 이(가) 불안정한 연결 문제를 참조하십시오.

  • MTA를 다시 시작하면 전송 MT가 잠시 동안 다시 작동하게 되면 불안정한 연결로 인해 전송이 제한될 수 있습니다. 섹션 이(가) 불안정한 연결 문제를 참조하십시오.

  • 브로드 로그가 있고 올바른 날짜가 있는 올바른 상태로 있는지 확인하십시오. 없는 경우 게재 또는 게재 준비 문제일 수 있습니다.

  • MTA가 실제로 메시지를 처리하는지 확인합니다. 그렇지 않은 경우 SMS 문제가 아닐 수 있습니다.

  • SMS 커넥터가 실제로 공급자 장비와 연결되어 있는지 확인합니다. 모든 시스템이 제대로 통신하는지 확인하려면 공급자에게 피드백을 요청하십시오. 바인딩 프로세스에 대한 자세한 내용은 BIND_TRANSMITTERBIND_TRANSCEIVER PDUs 를 참조하십시오. 적절한 문제 해결을 위해 SMPP 추적을 활성화해야 할 수 있습니다.

  • SMPP 추적이 활성화되면 SUBMIT_SM PDU에 올바른 정보가 포함되어 있는지 확인하십시오.

  • 공급자가 "OK" 값(코드 0)이 있는 SUBMIT_SM_RESP PDU에 응답하는지 확인합니다. PDU가 적절한 지연과 함께 도착하는지 확인합니다. 1초 이상의 시간은 일반적으로 100ms 이내에 공급자와 논의해야 합니다.

  • 이러한 단계가 모두 작동하면 공급자 측에 문제가 있음을 확신할 수 있습니다. 플랫폼 문제 해결을 수행해야 합니다.

  • 작동하지만 처리량이 일치하지 않으면 전송 기간을 조정하고 MT 처리량을 낮추십시오. 공급자와 협력하여 조정해야 합니다. Adobe Campaign은 메시지를 매우 빠르게 전송할 수 있으므로 공급자 장치에서 성능 문제가 발생할 수 있습니다.

MT가 복제됩니다(동일한 SMS가 한 행에 여러 번 전송됨)

중복은 다시 시도로 인해 발생하는 경우가 많습니다. 메시지를 재시도할 때 중복이 있는 것은 정상이며, 다시 시도하는 근본 원인을 제거하도록 대신 시도해야 합니다.

  • 정확히 60초 간격으로 전송된 중복 항목이 표시되면 공급자 측에서 문제가 될 수 있으며 SUBMIT_SM_RESP을 충분히 빠르게 보내지 않습니다.

  • BIND/UNBIND이 많으면 연결이 불안정합니다. 중복 메시지 문제를 해결하기 전에 솔루션에 대해불안정한 연결 문제 섹션을 참조하십시오.

다시 시도할 때 중복 수 감소:

  • 전송 창을 낮춥니다. 전송 창은 SUBMIT_SM_RESP 지연을 덮을 만큼 커야 합니다. 이 값은 창이 가득 찬 동안 오류가 발생하는 경우 복제할 수 있는 최대 메시지 수를 나타냅니다.

SR(납품 입고) 처리 시 발생하는 문제

  • 모든 종류의 SR 문제 해결을 수행하려면 SMPP 추적을 사용하도록 설정해야 합니다.

  • DELIVER_SM PDU이(가) 공급자에서 오고 있으며 제대로 구성되어 있는지 확인합니다.

  • Adobe Campaign이 적시에 성공적으로 DELIVER_SM_RESP PDU에 답장하는지 확인합니다. Adobe Campaign Standard에서 이렇게 하면 전체 처리 논리가 적용되도록 보장되며, 그렇지 않으면 처리에 실패한 이유를 알려주는 로그에 오류 메시지가 계속 표시됩니다.

DELIVER_SM PDU이(가) 성공적으로 승인되지 않은 경우 다음을 확인해야 합니다.

  • 외부 계정​에서 ID 추출 및 오류 처리와 관련된 regex를 확인하십시오. DELIVER_SM PDU 컨텐츠에 대해 유효성을 검사해야 할 수 있습니다.

  • 오류가 broadLogMsg 테이블에서 제대로 프로비저닝되었는지 확인합니다.

  • Adobe Campaign Standard의 경우 broadLogbroadLogExec 테이블이 올바르게 동기화되었는지 확인합니다.

모든 문제를 해결했지만 일부 잘못된 SR이 여전히 공급자의 버퍼에 있는 경우 잘못된 ID 승인 카운트 옵션을 사용하여 건너뛸 수 있습니다. 이 값은 버퍼가 정리 된 후 가능한 한 빨리 0으로 재설정하고 주의해서 사용해야 합니다.

MO(및 블랙리스트/자동 회신)를 처리할 때 발생하는 문제

  • 테스트 중에 SMPP 추적을 사용하도록 설정합니다. TLS를 활성화하지 않는 경우 MO를 문제 해결할 때 네트워크 캡처를 수행하여 PDU에 올바른 정보가 포함되어 있고 올바르게 포맷되어 있는지 확인해야 합니다.

  • 네트워크 트래픽을 캡처하거나 SMPP 추적을 분석할 때는 응답이 구성된 경우 MO 및 응답 MT와의 전체 대화를 캡처해야 합니다.

  • MO(DELIVER_SM PDU)가 추적에 나타나지 않으면 문제가 공급자 측에 있습니다. 플랫폼 문제 해결을 수행해야 합니다.

  • DELIVER_SM PDU이(가) 나타나면 성공한 DELIVER_SM_RESP PDU(코드 0)과 함께 Adobe Campaign에서 승인하는지 확인합니다. 이 RESP는 모든 처리 논리가 Adobe Campaign(자동 회신 및 허용/차단 목록)에 의해 적용되었음을 보장합니다. 그렇지 않으면 MTA 로그에서 오류 메시지를 검색합니다.

  • 자동 회신이 활성화된 경우 SUBMIT_SM이(가) 공급자에게 전송되었는지 확인합니다. 그렇지 않으면 MTA 로그에서 오류 메시지를 찾을 수 있습니다.

  • 답글이 포함된 SUBMIT_SM MT PDU이 추적에 나와 있지만 SMS가 휴대폰에 도달하지 않는 경우, 문제 해결에 대한 지원이 필요하면 공급자에게 문의해야 합니다.

게재를 준비하는 동안 격리된 수신자(자동 회신 기능으로 격리됨)를 제외하지 않는 문제가 발생했습니다

  • 격리 테이블과 게재 로그에서 전화 번호 형식이 정확히 같은지 확인합니다. 없는 경우 국제 전화 번호 형식의 더하기 접두사에 문제가 있는 경우 이 섹션을 참조하십시오.

  • 짧은 코드를 확인합니다. 수신자의 짧은 코드가 외부 계정에 정의된 코드와 동일하거나 비어 있는 경우(empty = any shortcode) 제외가 발생할 수 있습니다. 전체 Adobe Campaign 인스턴스에 짧은 코드가 한 개만 사용되는 경우 모든 짧은 코드 필드를 비워 두면 더 쉽습니다.

인코딩 문제

1단계: 공급자에게 문의

그들에게 연락하여 무엇이 문제인지 알아보세요. 해당 고객은 문제가 자신의 옆이나 Adobe Campaign 쪽에 있는지 확인할 수 있습니다. Adobe Campaign에 문제가 있으면 어떤 필드가 잘못되었는지 정확히 알 수 있어야 합니다.

2단계: 메시지에 포함된 내용 파악

유니코드를 사용하면 유사 문자의 많은 변형을 사용할 수 있으며 Adobe Campaign에서 모든 변형을 처리할 수 없습니다.

문제의 가장 일반적인 원인은 워드 프로세서의 복사-붙여넣기인데, 이는 일반적인 문자를 오포그래피 수정 버전으로 바꿉니다. 공백은 줄바꿈 없는 공백으로 변경되고, 큰따옴표는 시작 및 종료 따옴표로 변경되고, 빼기 기호는 다양한 하이픈 등으로 변경되었습니다.

테스트할 때 메시지를 복사하여 붙여 넣지 말고 항상 인터페이스에 직접 입력하십시오.

16진수로 유사한 문자 간의 차이를 알 수 있습니다. 소문자 L, 대문자 I, O, 0, 모든 유형의 따옴표, 라틴어가 아닌 인코딩 또는 서로 다른 유형의 공백도 모두 동일하게 보이거나 전혀 표시되지 않을 수 있습니다.

유니코드를 16진수로 변환하려면 유니코드 코드 변환기 웹 사이트와 같은 온라인 도구를 사용할 수 있습니다. 텍스트를 입력하고 전화 번호와 같은 PII가 없는지 확인하고 변환​을 클릭합니다. 아래쪽의 16진수 값이 표시됩니다(UTF-32 영역).

공급자나 Adobe Campaign 지원 여부와 관계없이 인코딩 문제에 대한 티켓을 열 때는 항상 입력하는 내용과 표시되는 내용을 16진수 버전으로 포함해야 합니다.

3단계: 전송해야 하는 사항 파악

사용할 인코딩을 결정하고 해당 문자 표를 온라인으로 검색합니다. 전송하려는 문자가 실제로 대상 코드 페이지에서 사용할 수 있는지 확인합니다. data_coding 필드가 올바르고 사용자와 공급자가 예상하는 것과 일치하는지 확인합니다.

4단계: 실제로 보낸 내용 파악

공급자에 보내는 바이트를 정확히 보려면 커넥터의 디버그 출력이 필요합니다. 인코딩 문제가 SUBMIT_SM PDU에 표시되므로 캡처해야 합니다. 로그에서 쉽게 찾을 수 있는 매우 고유한 메시지를 보냅니다.

테스트할 때 다양한 종류의 특수 문자를 보냅니다. 예를 들어 GSM7 인코딩에는 16진수 형태로 매우 구별되는 확장 문자가 포함되어 있으므로 다른 인코딩에 나타나지 않으므로 쉽게 찾을 수 있습니다.

SMS 문제에 대해 통신할 때 포함할 요소

SMS 문제에 대한 지원을 요청할 때마다, Adobe Campaign에 대한 지원 티켓을 열지, SMS 공급자에게 보내거나, 문제에 대한 모든 커뮤니케이션을 공개하려면 다음 정보를 포함하여 제대로 된 자격이 있는지 확인해야 합니다. 문제가 빨리 해결되도록 적절한 조건을 갖춘 것이 중요합니다.

  • 문제가 나타날 때 자세한 SMPP 메시지를 사용합니다. 대부분의 SMS 문제는 이것 없이는 해결할 수 없습니다.

  • 문제가 SMS 트래픽과 관련된 경우, 공급자에게 먼저 문의하십시오. 플랫폼이 SMS 트래픽 문제를 실시간으로 효율적으로 진단하기 위해 가장 적합합니다.

  • 그 문제에 대한 간략한 사실적 설명을 포함시키시오.

  • 예상 결과에 대한 설명을 포함합니다.

  • 공급자의 피드백을 포함합니다.

  • 관련 로그 및/또는 네트워크 캡처를 포함합니다. 캡처를 수행할 때는 캡처 중에 문제를 재현해야 합니다.

  • 로그, 추적 또는 캡처를 포함하는 경우 문제가 나타날 때 파일의 정확한 위치를 파악합니다.

  • 메시지, PDU 또는 로그를 참조하는 경우 해당 타임스탬프를 명확히 표시하여 찾기 쉽게 합니다.

  • 테스트 환경에서 문제를 재현해 보십시오. 설정에 대해 잘 모를 경우 테스트 환경에서 테스트해 보고 SMPP 추적으로 결과를 확인하십시오. 일반적으로 운영 환경에서 문제를 직접 보고하는 것보다 테스트 환경에서 복제된 문제를 보고하는 것이 좋습니다.

  • 플랫폼에서 수행한 변경 또는 변경 사항을 포함합니다. 또한 공급자가 자체적으로 했을 수 있는 변경 사항을 포함합니다.

네트워크 캡처

네트워크 캡처가 항상 필요한 것은 아닙니다. 일반적으로 자세한 SMPP 메시지는 충분합니다. 다음은 네트워크 캡처가 필요한지 여부를 확인하는 데 도움이 되는 몇 가지 지침입니다.

  • 연결 문제가 있지만 자세한 정보 메시지에 BIND_RESP PDU이 표시되지 않습니다.

  • 설명이 없는 연결 해제 오류 메시지와 함께 낮은 수준 프로토콜 오류를 감지하는 커넥터의 일반적인 동작입니다.

  • 공급자가 연결 해제/연결 해제 프로세스에 대해 불평합니다.

  • 선택적 TLV 필드의 인코딩 문제가 발생합니다.

  • 서로 다른 연결 간에 트래픽이 섞여 있는 것으로 간주됩니다.

다른 모든 경우에는 자세한 정보 SMPP 메시지를 먼저 분석하고 세부 정보 로그에 정보가 누락되었다는 것이 분명한 경우에만 네트워크 캡처를 요청합니다.

경우에 따라 네트워크 트래픽을 캡처할 필요가 없습니다. 다음은 가장 일반적인 경우입니다.

  • TLS 활성화: 기본적으로 TLS 트래픽은 암호화되므로 캡처할 수 없습니다.

  • 성능 문제: 로그에는 성능 문제를 추적하는 데 필요한 모든 정보가 포함되어 있습니다.

  • 타이밍 문제(retry timing, enquire_link 기간, 처리량 캡핑 등)

  • SR 구문 분석 및 처리: 자세한 정보 로그를 사용하면 더 많은 컨텍스트를 얻을 수 있고 더 나은 프레젠테이션을 제공할 수 있습니다.

  • MO 처리(자동 회신, 격리).

  • 실제 SMPP 트래픽이 포함되지 않은 오류: 게재 준비, 메시지 센터 API 문제, 워크플로우 문제 등은

SMPP 추적 사용

새로운 커넥터는 추적을 통해 확장된 로깅을 지원합니다. SMPP. 추적은 표준 출력이 아니라 MTA 로그에 출력됩니다.

외부 계정당 활성화(기본 설정 방법)

  1. 외부 계정​에서 로그 파일​에 자세한 SMPP 추적을 활성화합니다.
  2. 저장. 커넥터가 추적이 활성화된 상태로 다시 연결됩니다.

즉시 사용

Adobe Campaign Standard MTA에는 즉시 추적 필터를 변경할 수 있는 HTTP 제어 인터페이스가 있습니다.
POST 호출은 추적을 활성화/비활성화할 수 있습니다. SMPP 추적을 활성화하는 URL 예:

POST http://host:7780/mta/trace?filter=SMPP

추적을 비활성화하려면 빈 필터를 설정합니다.

POST http://host:7780/mta/trace?filter=

구성에서 활성화

config-instance.xml 파일에서 다음 매개 변수를 설정합니다.

<mta args="-tracefilter:SMPP"/>

컨테이너에서 열린 연결 수 확인

컨테이너에서 열린 연결 수를 확인하려면 다음 명령을 사용할 수 있습니다.

(for pid in $(ss -neopts  | sed -n ‘s/^.*:3600[ \t].*users:(([0-9A-Za-z”]*,pid=\([0-9]*\),.*$/\1/p’ | sort ); do  cat /proc/$pid/cmdline; echo  ” $pid” ;done;) | uniq --count

지정된 포트에 대해 열린 연결 수가 표시됩니다. 여기포트 3600을 사용하고 있습니다

결과는 다음과 같습니다.

4 nlserversms -noconsole -tracefile:sms@INSTANCE_NAME -instance:INSTANCE_NAME -detach 15180
2 nlservermtachild -tracefile:mtachild@INSTANCE_NAME -instance:INSTANCE_NAME -detach 1838
2 nlservermtachild -tracefile:mtachild@INSTANCE_NAME -instance:INSTANCE_NAME -detach 24025
2 nlservermtachild -tracefile:mtachild@INSTANCE_NAME -instance:INSTANCE_NAME -detach 24029
2 nlservermtachild -tracefile:mtachild@INSTANCE_NAME -instance:INSTANCE_NAME -detach 29088
2 nlservermtachild -tracefile:mtachild@INSTANCE_NAME -instance:INSTANCE_NAME -detach 30390

sms 프로세스에 대해 열려 있는 연결 4개 및 하위 항목이 5개인 mta당 2개

이 페이지에서는