Advertisement
Guest User

Untitled

a guest
Jul 24th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 35.12 KB | None | 0 0
  1. CREATE OR REPLACE PACKAGE BODY PKG_COMMON_TRANS_SMS
  2. AS
  3.   --
  4. PROCEDURE PR_UPDATE_MO_TARIFF_ID(
  5.     GET_PART_DATE  IN VARCHAR2,
  6.     TARIFF_ID      IN TPA_O_NUMBER_VARR,
  7.     TRANSACTION_ID IN VARCHAR2)
  8. AS
  9.   --
  10.   SQLSTRING_CUR VARCHAR2(500);
  11.   --
  12. BEGIN
  13.   SQLSTRING_CUR := 'UPDATE CGW_SMS_MO_TRANS_LOG_OND PARTITION (PRT_SMS_MO_TRANS_LOG_' || GET_PART_DATE || ') SET  CMTL_MT_TARIFF_ID=:1 WHERE CMTL_TRANSACTION_ID=:2';
  14.   EXECUTE IMMEDIATE SQLSTRING_CUR USING TARIFF_ID , TRANSACTION_ID;
  15. END PR_UPDATE_MO_TARIFF_ID;
  16. --
  17. --
  18. PROCEDURE PR_SMS_MO_CHANNEL_SMPP_INSERT(
  19.     MO_DETAILS_SMS_CP IN TP_O_MO_DETAILS_SMS_CP )
  20. AS
  21.   --
  22. BEGIN
  23.   --
  24.   PKG_COMMON_TRANS_SMS.PR_DELVER_DATA_ENQ( MO_DETAILS_SMS_CP => MO_DETAILS_SMS_CP);
  25.   --
  26. END PR_SMS_MO_CHANNEL_SMPP_INSERT;
  27. --
  28. PROCEDURE PR_SMS_MO_HISTORY_INSERT(
  29.     MO_DETAILS_SMS_CP IN TP_O_MO_DETAILS_SMS_CP )
  30. AS
  31. BEGIN
  32.   INSERT
  33.   INTO CGW_SMS_MO_TRANS_LOG_HIST
  34.     (
  35.       CMH_CHRONO ,
  36.       CMH_MOBILE_NO ,
  37.       CMH_SHORT_CODE ,
  38.       CMH_SUFFIX ,
  39.       CMH_MESSAGE_RECEIVED ,
  40.       CMH_REQ_RECV_DTIME ,
  41.       CMH_PROCESSED_DTIME ,
  42.       CMH_MO_CHARGE_APPLIED ,
  43.       CMH_MO_TARIFF_ID ,
  44.       CMH_MO_PROCESSED_STATUS_CODE ,
  45.       CMH_MO_PROCESSED_STATUS_MESG ,
  46.       CMH_CP_ID
  47.     )
  48.     VALUES
  49.     (
  50.       SEQ_MO_HISTORY_LOG.NEXTVAL ,
  51.       MO_DETAILS_SMS_CP.MSISDN ,
  52.       MO_DETAILS_SMS_CP.SHORT_CODE ,
  53.       MO_DETAILS_SMS_CP.SUFFIX ,
  54.       MO_DETAILS_SMS_CP.MESSAGE_RECEIVED ,
  55.       SYSDATE ,
  56.       --MO_DETAILS_SMS_CP.REQ_RECV_DTIME          ,
  57.       SYSDATE ,
  58.       MO_DETAILS_SMS_CP.MO_CHARGE_APPLIED ,
  59.       MO_DETAILS_SMS_CP.MO_TARIFF_ID ,
  60.       MO_DETAILS_SMS_CP.MO_PROCESSED_STATUS_CODE ,
  61.       MO_DETAILS_SMS_CP.MO_PROCESSED_STATUS_MESG ,
  62.       MO_DETAILS_SMS_CP.CP_ID
  63.     ) ;
  64.   COMMIT;
  65. END PR_SMS_MO_HISTORY_INSERT;
  66. --
  67. PROCEDURE PR_SMS_MO_TRANS_INSERT
  68.   (
  69.     MO_DETAILS_SMS_CP IN TP_O_MO_DETAILS_SMS_CP
  70.   )
  71. AS
  72. BEGIN
  73.   INSERT
  74.   INTO CGW_SMS_MO_TRANS_LOG_OND
  75.     (
  76.       CMTL_TRANSACTION_ID ,
  77.       CMTL_SHORT_CODE ,
  78.       CMTL_MSISDN ,
  79.       CMTL_CP_ID ,
  80.       CMTL_MO_REQ_RECV_DTIME ,
  81.       CMTL_MO_CHARGE_APPLIED ,
  82.       CMTL_MO_TARIFF_ID ,
  83.       CMTL_MO_PROC_DTIME ,
  84.       CMTL_MO_KEYWORD_ID ,
  85.       CMTL_MO_MESSAGE_BODY ,
  86.       CMTL_MT_CHARGE_APPLIED ,
  87.       CMTL_MT_TARIFF_ID
  88.     )
  89.     VALUES
  90.     (
  91.       MO_DETAILS_SMS_CP.TRANSACTION_ID ,
  92.       MO_DETAILS_SMS_CP.SHORT_CODE ,
  93.       MO_DETAILS_SMS_CP.MSISDN ,
  94.       MO_DETAILS_SMS_CP.CP_ID ,
  95.       SYSDATE ,
  96.       MO_DETAILS_SMS_CP.MO_CHARGE_APPLIED ,
  97.       MO_DETAILS_SMS_CP.MO_TARIFF_ID ,
  98.       SYSDATE ,
  99.       MO_DETAILS_SMS_CP.KEYWORD_ID ,
  100.       MO_DETAILS_SMS_CP.MESSAGE_RECEIVED ,
  101.       MO_DETAILS_SMS_CP.MT_CHARGING_APPLICABLE ,
  102.       MO_DETAILS_SMS_CP.MT_TARIFF_ID
  103.     ) ;
  104.   COMMIT;
  105. END PR_SMS_MO_TRANS_INSERT;
  106. --
  107. PROCEDURE PR_SMS_MT_BROADCAST_INSERT
  108.   (
  109.     OBJ_CP_MT_DETAILS IN TP_O_MT_DETAILS_SMS ,
  110.     MT_CHARGECODE     IN NUMBER ,
  111.     PROCESS_DATE      IN DATE ,
  112.     SUBMIT_DATE       IN DATE ,
  113.     STATUS_CODE       IN NUMBER ,
  114.     STATUS_MESG       IN VARCHAR2
  115.   )
  116. AS
  117. BEGIN
  118.   INSERT
  119.   INTO CGW_SMS_MT_TRANS_LOG_BC
  120.     (
  121.       CSBH_MOBILE_NO ,
  122.       CSBH_SHORT_CODE ,
  123.       CBSH_CP_ID ,
  124.       CSBH_MT_RECEIVED_DTIME ,
  125.       CSBH_MT_MESSAGE_TYPE ,
  126.       CSBH_MT_MESSAGE_HEADER ,
  127.       CSBH_MT_MESSAGE_BODY ,
  128.       CSBH_MT_PROCESSED_STATUS_CODE ,
  129.       CSBH_MT_PROCESSED_STATUS_MESG ,
  130.       CSBH_MT_SUBMIT_DTIME ,
  131.       CSBH_MT_SUBMIT_STATUS_CODE ,
  132.       CSBH_MT_SUBMIT_STATUS_MESG ,
  133.       CSBH_TRANSACTION_ID ,
  134.       CSBH_MESSAGE_ID_INT ,
  135.       CSBH_MESSAGE_ID_EXT
  136.     )
  137.     VALUES
  138.     (
  139.       OBJ_CP_MT_DETAILS.MSISDN ,
  140.       OBJ_CP_MT_DETAILS.SHORT_CODE ,
  141.       OBJ_CP_MT_DETAILS.CP_ID ,
  142.       SYSDATE ,
  143.       OBJ_CP_MT_DETAILS.MESSAGE_TYPE ,
  144.       OBJ_CP_MT_DETAILS.MESSAGE_HEADER ,
  145.       OBJ_CP_MT_DETAILS.MESSAGE_BODY ,
  146.       OBJ_CP_MT_DETAILS.MT_PROCESSED_STATUS_CODE ,
  147.       OBJ_CP_MT_DETAILS.MT_PROCESSED_STATUS_MESG ,
  148.       SUBMIT_DATE ,
  149.       STATUS_CODE ,
  150.       STATUS_MESG ,
  151.       OBJ_CP_MT_DETAILS.TRANSACTION_ID ,
  152.       OBJ_CP_MT_DETAILS.MESSAGE_ID ,
  153.       OBJ_CP_MT_DETAILS.CP_MESSAGE_ID
  154.     ) ;
  155.   COMMIT;
  156. END PR_SMS_MT_BROADCAST_INSERT;
  157. --
  158. PROCEDURE PR_SMS_MT_INVALID_INSERT
  159.   (
  160.     OBJ_CP_MT_DETAILS IN TP_O_MT_DETAILS_SMS ,
  161.     STATUS_CODE       IN NUMBER ,
  162.     STATUS_MESG       IN VARCHAR2 ,
  163.     ACTION            IN NUMBER
  164.   )
  165. AS
  166. BEGIN
  167.   INSERT
  168.   INTO CGW_SMS_MT_TRANS_LOG_INVLD
  169.     (
  170.       CIMH_CP_TRANSACTION_ID ,
  171.       CIMH_MOBILE_NO ,
  172.       CIMH_SHORT_CODE ,
  173.       CIMH_CP_ID ,
  174.       CIMH_MT_ACTION_TAKEN ,
  175.       CIMH_MT_MESSAGE_TYPE ,
  176.       CIMH_MT_MESSAGE_HEADER ,
  177.       CIMH_MT_MESSAGE_BODY ,
  178.       CIMH_MT_RECVD_DATETIME ,
  179.       CIMH_MT_PROCESSED_DATETIME ,
  180.       CIMH_MT_SUBMIT_STATUS_CODE ,
  181.       CIMH_MT_SUBMIT_STATUS_MESG ,
  182.       CIMH_MESSAGE_ID
  183.     )
  184.     VALUES
  185.     (
  186.       OBJ_CP_MT_DETAILS.TRANSACTION_ID ,
  187.       OBJ_CP_MT_DETAILS.MSISDN ,
  188.       OBJ_CP_MT_DETAILS.SHORT_CODE ,
  189.       OBJ_CP_MT_DETAILS.CP_ID ,
  190.       ACTION ,
  191.       OBJ_CP_MT_DETAILS.MESSAGE_TYPE ,
  192.       OBJ_CP_MT_DETAILS.MESSAGE_HEADER ,
  193.       OBJ_CP_MT_DETAILS.MESSAGE_BODY ,
  194.       SYSDATE ,
  195.       --OBJ_CP_MT_DETAILS.REQ_RECV_DTIME,
  196.       SYSDATE ,
  197.       STATUS_CODE ,
  198.       STATUS_MESG ,
  199.       OBJ_CP_MT_DETAILS.CP_MESSAGE_ID
  200.     ) ;
  201.   COMMIT;
  202. END PR_SMS_MT_INVALID_INSERT;
  203. --
  204. PROCEDURE PR_SMS_MT_TRANS_INSERT
  205.   (
  206.     OBJ_CP_MT_DETAILS IN TP_O_MT_DETAILS_SMS ,
  207.     MT_CHARGECODE     IN NUMBER ,
  208.     PROCESS_DATE      IN DATE ,
  209.     SUBMIT_DATE       IN DATE ,
  210.     STATUS_CODE       IN NUMBER ,
  211.     STATUS_MESG       IN VARCHAR2 ,
  212.     N_MT_COUNTER      IN NUMBER ,
  213.     MT_COUNTER_LIMIT  IN NUMBER
  214.   )
  215. AS
  216. BEGIN
  217.   --
  218.   INSERT
  219.   INTO CGW_SMS_MT_TRANS_LOG_OND
  220.     (
  221.       CMTL_TRANSACTION_ID ,
  222.       CMTL_MESSAGE_ID_EXT ,
  223.       CMTL_MESSAGE_ID_INT ,
  224.       CMTL_REQ_RECV_DTIME ,
  225.       CMTL_SHORT_CODE ,
  226.       CMTL_MSISDN ,
  227.       CMTL_CP_ID ,
  228.       CMTL_MT_TARIFF_ID ,
  229.       CMTL_MT_PRICE ,
  230.       --    CMTL_MT_CHARGING_APPLICABLE   ,
  231.       --    CMTL_MT_CHARGE_APPLIED        ,
  232.       CMTL_MT_MESSAGE_TYPE ,
  233.       CMTL_MT_MESSAGE_HEADER ,
  234.       CMTL_MT_MESSAGE_BODY ,
  235.       CMTL_MT_PROCESSED_DTIME ,
  236.       CMTL_MT_PROCESSED_STATUS_CODE ,
  237.       CMTL_MT_PROCESSED_STATUS_MESG ,
  238.       CMTL_MT_SUBMIT_DTIME ,
  239.       CMTL_MT_SUBMIT_STATUS_CODE ,
  240.       CMTL_MT_SUBMIT_STATUS_MESG
  241.     )
  242.     VALUES
  243.     (
  244.       OBJ_CP_MT_DETAILS.TRANSACTION_ID ,
  245.       OBJ_CP_MT_DETAILS.CP_MESSAGE_ID ,
  246.       OBJ_CP_MT_DETAILS.MESSAGE_ID ,
  247.       SYSDATE ,
  248.       OBJ_CP_MT_DETAILS.SHORT_CODE ,
  249.       OBJ_CP_MT_DETAILS.MSISDN ,
  250.       OBJ_CP_MT_DETAILS.CP_ID ,
  251.       MT_CHARGECODE ,
  252.       OBJ_CP_MT_DETAILS.PRICE ,
  253.       --    MT_CHARGE_APPLIED                          ,
  254.       --    MT_CHARGE_APPLIED                          ,
  255.       OBJ_CP_MT_DETAILS.MESSAGE_TYPE ,
  256.       OBJ_CP_MT_DETAILS.MESSAGE_HEADER ,
  257.       OBJ_CP_MT_DETAILS.MESSAGE_BODY ,
  258.       PROCESS_DATE ,
  259.       OBJ_CP_MT_DETAILS.MT_PROCESSED_STATUS_CODE ,
  260.       OBJ_CP_MT_DETAILS.MT_PROCESSED_STATUS_MESG ,
  261.       SUBMIT_DATE ,
  262.       STATUS_CODE ,
  263.       STATUS_MESG
  264.     ) ;
  265.   --
  266.   COMMIT;
  267. END PR_SMS_MT_TRANS_INSERT;
  268. --
  269. PROCEDURE PR_SMS_MT_TRANS_INSERT_Q_FULL
  270.   (
  271.     OBJ_CP_MT_DETAILS IN TP_O_MT_DETAILS_SMS ,
  272.     MT_CHARGECODE     IN NUMBER ,
  273.     PROCESS_DATE      IN DATE ,
  274.     SUBMIT_DATE       IN DATE ,
  275.     STATUS_CODE       IN NUMBER ,
  276.     STATUS_MESG       IN VARCHAR2 ,
  277.     MT_REL_ID         IN NUMBER
  278.   )
  279. AS
  280. BEGIN
  281.   --
  282.   INSERT
  283.   INTO CGW_SMS_MT_TRANS_LOG_OND
  284.     (
  285.       CMTL_TRANSACTION_ID ,
  286.       CMTL_MESSAGE_ID_EXT ,
  287.       CMTL_MESSAGE_ID_INT ,
  288.       CMTL_REQ_RECV_DTIME ,
  289.       CMTL_SHORT_CODE ,
  290.       CMTL_MSISDN ,
  291.       CMTL_CP_ID ,
  292.       CMTL_MT_TARIFF_ID ,
  293.       CMTL_MT_PRICE ,
  294.       --    CMTL_MT_CHARGING_APPLICABLE   ,
  295.       --    CMTL_MT_CHARGE_APPLIED        ,
  296.       CMTL_MT_MESSAGE_TYPE ,
  297.       CMTL_MT_MESSAGE_HEADER ,
  298.       CMTL_MT_MESSAGE_BODY ,
  299.       CMTL_MT_PROCESSED_DTIME ,
  300.       CMTL_MT_PROCESSED_STATUS_CODE ,
  301.       CMTL_MT_PROCESSED_STATUS_MESG ,
  302.       CMTL_MT_SUBMIT_DTIME ,
  303.       CMTL_MT_SUBMIT_STATUS_CODE ,
  304.       CMTL_MT_SUBMIT_STATUS_MESG
  305.     )
  306.     VALUES
  307.     (
  308.       OBJ_CP_MT_DETAILS.TRANSACTION_ID ,
  309.       OBJ_CP_MT_DETAILS.CP_MESSAGE_ID ,
  310.       OBJ_CP_MT_DETAILS.MESSAGE_ID ,
  311.       SYSDATE ,
  312.       OBJ_CP_MT_DETAILS.SHORT_CODE ,
  313.       OBJ_CP_MT_DETAILS.MSISDN ,
  314.       OBJ_CP_MT_DETAILS.CP_ID ,
  315.       MT_CHARGECODE ,
  316.       OBJ_CP_MT_DETAILS.PRICE ,
  317.       --    MT_CHARGE_APPLIED                          ,
  318.       --    MT_CHARGE_APPLIED                          ,
  319.       OBJ_CP_MT_DETAILS.MESSAGE_TYPE ,
  320.       OBJ_CP_MT_DETAILS.MESSAGE_HEADER ,
  321.       OBJ_CP_MT_DETAILS.MESSAGE_BODY ,
  322.       PROCESS_DATE ,
  323.       OBJ_CP_MT_DETAILS.MT_PROCESSED_STATUS_CODE ,
  324.       OBJ_CP_MT_DETAILS.MT_PROCESSED_STATUS_MESG ,
  325.       SUBMIT_DATE ,
  326.       STATUS_CODE ,
  327.       STATUS_MESG
  328.     ) ;
  329.   --
  330.   COMMIT;
  331. END PR_SMS_MT_TRANS_INSERT_Q_FULL;
  332. --
  333. PROCEDURE PR_SMSG_MT_QUEUE_INSERT
  334.   (
  335.     TRANS_ID       VARCHAR2 ,
  336.     SHORT_CODE     VARCHAR2 ,
  337.     MSISDN         VARCHAR2 ,
  338.     MESSAGE_TYPE   NUMBER ,
  339.     MESSAGE_HEADER VARCHAR2 ,
  340.     MESSAGE        VARCHAR2 ,
  341.     DELV_RECPT_REQ NUMBER ,
  342.     REFUND_FLAG    NUMBER
  343.   )
  344. AS
  345. BEGIN
  346.   PR_SMSG_MT_ENQUEUE ( TRANS_ID => TRANS_ID , SHORT_CODE => SHORT_CODE , SENDER_NAME => '' , MSISDN => MSISDN , MESSAGE_TYPE => MESSAGE_TYPE , MESSAGE_HEADER => MESSAGE_HEADER , MESSAGE => MESSAGE , DELV_RECPT_REQ => DELV_RECPT_REQ , REFUND_FLAG => REFUND_FLAG) ;
  347. END PR_SMSG_MT_QUEUE_INSERT;
  348. --
  349. PROCEDURE PR_UP_OND_MT_DLV_CNT
  350.   (
  351.     TRANS_ID VARCHAR2 ,
  352.     MSISDN     IN VARCHAR2 ,
  353.     PART_DATE  IN VARCHAR2 ,
  354.     MT_COUNTER IN NUMBER ,
  355.     N_MT_COUNTER OUT NUMBER
  356.   )
  357. AS
  358.   TRANSACTION_STATUS NUMBER;
  359.   UPDATE_QUERY       VARCHAR2 ( 500 ) ;
  360. BEGIN
  361.   N_MT_COUNTER         := 0;
  362.   IF ( MT_COUNTER      <= 1 ) THEN
  363.     TRANSACTION_STATUS := - 1;
  364.   ELSE
  365.     TRANSACTION_STATUS := 1;
  366.   END IF;
  367.   N_MT_COUNTER := MT_COUNTER - 1;
  368.   --
  369.   UPDATE_QUERY := 'UPDATE CGW_VALIDATE_TRANSACTION PARTITION (PRT_VALIDATE_TRANS_' || PART_DATE || ') SET CVT_TRANSACTION_STATUS = :1, CVT_MESSAGE_COUNTER = :2 WHERE CVT_TRANSACTION_ID = :3 AND CVT_MSISDN = :4';
  370.   EXECUTE IMMEDIATE UPDATE_QUERY USING TRANSACTION_STATUS ,
  371.   N_MT_COUNTER ,
  372.   TRANS_ID ,
  373.   MSISDN;
  374.   COMMIT;
  375. END PR_UP_OND_MT_DLV_CNT;
  376. --
  377. PROCEDURE PR_UP_WEB_MT_DLV_CNT
  378.   (
  379.     TRANS_ID VARCHAR2 ,
  380.     MSISDN    IN VARCHAR2 ,
  381.     PART_DATE IN VARCHAR2
  382.   )
  383. AS
  384.   UPDATE_QUERY VARCHAR2
  385.   (
  386.     500
  387.   )
  388.   ;
  389. BEGIN
  390.   UPDATE_QUERY := 'UPDATE CGW_VALIDATE_TRANSACTION_WEB PARTITION (PRT_WEB_TRANS_LOG_' || PART_DATE || ') SET CVTW_TRANSACTION_STATUS = -1  WHERE  CVTW_TRANSACTION_ID = :1 AND CVTW_MSISDN = :2';
  391.   EXECUTE IMMEDIATE UPDATE_QUERY USING TRANS_ID ,
  392.   MSISDN;
  393.   COMMIT;
  394. END PR_UP_WEB_MT_DLV_CNT;
  395. --
  396. PROCEDURE PR_ENQ_MT_SMS_BC_CP
  397.   (
  398.     TRANS_ID    VARCHAR2 ,
  399.     MESSAGE_ID  VARCHAR2,
  400.     CP_ID       NUMBER,
  401.     SHORT_CODE  VARCHAR2,
  402.     SUFFIX      VARCHAR2 ,
  403.     SENDER_NAME VARCHAR2,
  404.     MSISDNS TPA_O_VARCHAR_TAB,
  405.     MESSAGE_TYPE   NUMBER ,
  406.     MESSAGE_HEADER VARCHAR2 ,
  407.     MESSAGE        VARCHAR2 ,
  408.     DELV_RECPT_REQ NUMBER ,
  409.     ACCESS_CHANNEL NUMBER ,
  410.     CHARGE_FLAG    CHAR ,
  411.     PRIORITY       NUMBER,
  412.     MAX_MT         NUMBER,
  413.     QUEUE_TYPE     VARCHAR2,
  414.     STATUS_CODE OUT NUMBER,
  415.     SUCCESS_CNT OUT NUMBER,
  416.     TOTAL_MT_SENT_COUNT OUT NUMBER
  417.   )
  418. AS
  419.   TMP_MT_SENT_CNT NUMBER
  420.   (
  421.     8,0
  422.   )
  423.   ;
  424.   TMP_LAST_UPDATE_DTIME DATE;
  425.   TMP_MSISDN_ARR TPA_O_VARCHAR_TAB;
  426.   DATE_DIFF  NUMBER(2);
  427.   MSISDN_CNT NUMBER;
  428.   FAILED_CNT NUMBER;
  429.   --
  430.   CURSOR REF_CURSOR
  431.   IS
  432.     SELECT * FROM TABLE(CAST (MSISDNS AS TPA_O_VARCHAR_TAB));
  433.   --
  434.   QUEUE_NAME VARCHAR2(50);
  435.   PAYLOAD TP_Q_MT_SMS_AL_CP;
  436.   PAYLOAD_ARRAY TPA_Q_MT_SMS_AL_CP;
  437.   --
  438.   ENQUEUE_OPTIONS DBMS_AQ.ENQUEUE_OPTIONS_T;
  439.   RECIPIENT_ARRAY DBMS_AQ.AQ$_RECIPIENT_LIST_T;
  440.   MSG_PROPERTIES DBMS_AQ.MESSAGE_PROPERTIES_T;
  441.   MESSAGE_PROPERTIES_ARRAY DBMS_AQ.MESSAGE_PROPERTIES_ARRAY_T;
  442.   --
  443.   MSGID_ARRAY DBMS_AQ.MSGID_ARRAY_T;
  444.   ERROR_ARRAY DBMS_AQ.ERROR_ARRAY_T;
  445.   --
  446.   --ENQUEUED NUMBER;
  447.   --
  448. BEGIN
  449.   --
  450.   STATUS_CODE           := 0;
  451.   SUCCESS_CNT           := 0;
  452.   TMP_MT_SENT_CNT       := 0;
  453.   TOTAL_MT_SENT_COUNT   := TMP_MT_SENT_CNT;
  454.   TMP_LAST_UPDATE_DTIME := SYSDATE;
  455.   --
  456.   ENQUEUE_OPTIONS.VISIBILITY := DBMS_AQ.IMMEDIATE;
  457.   --
  458.   --
  459.   BEGIN
  460.     --
  461.     SELECT BSD_UPDATED_DTIME,
  462.       BSD_MT_SENT_CNT
  463.     INTO TMP_LAST_UPDATE_DTIME,
  464.       TMP_MT_SENT_CNT
  465.     FROM CGW_BC_SMS_DETAIL
  466.     WHERE BSD_CP_ID   =CP_ID
  467.     AND BSD_SHORT_CODE=SHORT_CODE;
  468.     --
  469.   EXCEPTION
  470.   WHEN NO_DATA_FOUND THEN
  471.     --
  472.     INSERT
  473.     INTO CGW_BC_SMS_DETAIL VALUES
  474.       (
  475.         CP_ID ,
  476.         SHORT_CODE ,
  477.         TMP_MT_SENT_CNT,
  478.         TMP_LAST_UPDATE_DTIME
  479.       );
  480.     --
  481.     COMMIT;
  482.     --
  483.     --
  484.   END;
  485.   --
  486.   TOTAL_MT_SENT_COUNT := TMP_MT_SENT_CNT;
  487.   MSISDN_CNT          := MSISDNS.COUNT;
  488.   --
  489.   UPDATE CGW_BC_SMS_DETAIL
  490.   SET BSD_MT_SENT_CNT = BSD_MT_SENT_CNT + MSISDN_CNT,
  491.     BSD_UPDATED_DTIME = SYSDATE
  492.   WHERE BSD_CP_ID     =CP_ID
  493.   AND BSD_SHORT_CODE  =SHORT_CODE;
  494.   COMMIT;
  495.   --
  496.   --
  497.   DATE_DIFF := TRUNC(SYSDATE) - TRUNC(TMP_LAST_UPDATE_DTIME);
  498.   --
  499.   --
  500.   IF MAX_MT       > 0 THEN
  501.     IF DATE_DIFF <= 0 AND TMP_MT_SENT_CNT >= MAX_MT THEN
  502.       --
  503.       UPDATE CGW_BC_SMS_DETAIL
  504.       SET BSD_MT_SENT_CNT = BSD_MT_SENT_CNT - MSISDN_CNT,
  505.         BSD_UPDATED_DTIME = SYSDATE
  506.       WHERE BSD_CP_ID     =CP_ID
  507.       AND BSD_SHORT_CODE  =SHORT_CODE;
  508.       COMMIT;
  509.       --
  510.       STATUS_CODE := 1777;
  511.       RETURN;
  512.     ELSIF DATE_DIFF > 0 THEN
  513.       --
  514.       UPDATE CGW_BC_SMS_DETAIL
  515.       SET BSD_MT_SENT_CNT = MSISDN_CNT,
  516.         BSD_UPDATED_DTIME = SYSDATE
  517.       WHERE BSD_CP_ID     =CP_ID
  518.       AND BSD_SHORT_CODE  =SHORT_CODE;
  519.       COMMIT;
  520.       --
  521.       TMP_MT_SENT_CNT := 0;
  522.     END IF;
  523.   END IF;
  524.   --
  525.   QUEUE_NAME := 'Q_MT_SMS_AL_BC_CP';
  526.   --
  527.   RECIPIENT_ARRAY (1)           := SYS.AQ$_AGENT ( 'INSTANCE1', QUEUE_NAME, NULL);
  528.   MSG_PROPERTIES.RECIPIENT_LIST := RECIPIENT_ARRAY;
  529.   --
  530.   PAYLOAD_ARRAY            := TPA_Q_MT_SMS_AL_CP();
  531.   MESSAGE_PROPERTIES_ARRAY := DBMS_AQ.MESSAGE_PROPERTIES_ARRAY_T();
  532.   --
  533.   --
  534.   --
  535.   OPEN REF_CURSOR;
  536.   --
  537.   LOOP
  538.     FETCH REF_CURSOR BULK COLLECT INTO TMP_MSISDN_ARR ;
  539.     --
  540.     EXIT
  541.   WHEN TMP_MSISDN_ARR.COUNT = 0;
  542.     --
  543.     FOR I IN TMP_MSISDN_ARR.FIRST..TMP_MSISDN_ARR.LAST
  544.     LOOP
  545.       EXIT
  546.     WHEN MAX_MT > 0 AND TMP_MT_SENT_CNT >= MAX_MT ;
  547.       --
  548.       --TRANS_ID:= 'B' || TO_CHAR(SYSTIMESTAMP,'MMDDHH24MISSFF3') || TMP_MSISDN_ARR(I) || SHORT_CODE || 'M';
  549.       PAYLOAD := TP_Q_MT_SMS_AL_CP ( CMQS_TRANSACTION_ID => TRANS_ID ,CMQS_SUBMIT_ID => MESSAGE_ID , CMQS_CPM_ID => CP_ID , CMQS_SOURCE => SHORT_CODE , CMQS_SUFFIX => '' , CMQS_SENDER_NAME => SENDER_NAME , CMQS_DESTINATION => TMP_MSISDN_ARR(I) , CMQS_REQ_RECV_DTIME => SYSDATE , CMQS_MESSAGE_TYPE => MESSAGE_TYPE, CMQS_MESSAGE => MESSAGE , CMQS_MESSAGE_VALIDITY => '' , CMQS_MESSAGE_DLVDTIME => '' , CMQS_MT_TYPE => PKG_ENUM_TYPES.EN_MT_TRANSACTIONS.MT_BROADCAST, CMQS_SCHEDULED_DTIME => SYSDATE, CMQS_CHARGE_FLAG => CHARGE_FLAG, CMQS_DELV_RECPT_REQD => 1 , CMQS_CHANNEL_ID => ACCESS_CHANNEL, CMQS_RETRY_COUNTER => 0) ;
  550.       PAYLOAD_ARRAY.EXTEND;
  551.       PAYLOAD_ARRAY(PAYLOAD_ARRAY.LAST) := PAYLOAD;
  552.       --
  553.       --
  554.       MESSAGE_PROPERTIES_ARRAY.EXTEND;
  555.       MESSAGE_PROPERTIES_ARRAY(MESSAGE_PROPERTIES_ARRAY.LAST) := MSG_PROPERTIES;
  556.       --
  557.       TMP_MT_SENT_CNT := TMP_MT_SENT_CNT + 1;
  558.     END LOOP;
  559.     --
  560.     --
  561.     SUCCESS_CNT := SUCCESS_CNT + DBMS_AQ.ENQUEUE_ARRAY( QUEUE_NAME => QUEUE_NAME, ENQUEUE_OPTIONS => ENQUEUE_OPTIONS, ARRAY_SIZE => PAYLOAD_ARRAY.COUNT, MESSAGE_PROPERTIES_ARRAY => MESSAGE_PROPERTIES_ARRAY, PAYLOAD_ARRAY => PAYLOAD_ARRAY, MSGID_ARRAY => MSGID_ARRAY, ERROR_ARRAY => ERROR_ARRAY);
  562.     --
  563.     FAILED_CNT := MSISDN_CNT - SUCCESS_CNT;
  564.     --
  565.     UPDATE CGW_BC_SMS_DETAIL
  566.     SET BSD_MT_SENT_CNT = BSD_MT_SENT_CNT - FAILED_CNT,
  567.       BSD_UPDATED_DTIME = SYSDATE
  568.     WHERE BSD_CP_ID     =CP_ID
  569.     AND BSD_SHORT_CODE  =SHORT_CODE;
  570.     --
  571.     COMMIT;
  572.     --
  573.     TOTAL_MT_SENT_COUNT := TMP_MT_SENT_CNT;
  574.     STATUS_CODE         := 1000;
  575.     --
  576.   END LOOP;
  577.   --
  578.   CLOSE REF_CURSOR;
  579.   --
  580. END PR_ENQ_MT_SMS_BC_CP;
  581. --
  582. PROCEDURE PR_ENQ_MT_SMS_CP(
  583.     TRANS_ID       VARCHAR2 ,
  584.     MESSAGE_ID     VARCHAR2 ,
  585.     CP_ID          NUMBER ,
  586.     SHORT_CODE     VARCHAR2 ,
  587.     SUFFIX         VARCHAR2 ,
  588.     MSISDN         VARCHAR2 ,
  589.     MESSAGE_TYPE   NUMBER ,
  590.     MESSAGE_HEADER VARCHAR2 ,
  591.     MESSAGE        VARCHAR2 ,
  592.     DELV_RECPT_REQ NUMBER ,
  593.     REFUND_FLAG    NUMBER ,
  594.     ACCESS_CHANNEL NUMBER ,
  595.     CHARGE_FLAG    CHAR ,
  596.     PRIORITY       NUMBER,
  597.     QUEUE_TYPE     VARCHAR2)
  598. AS
  599.   QUEUE_NAME VARCHAR2(50);
  600.   --
  601.   ENQUEUE_OPTIONS DBMS_AQ.ENQUEUE_OPTIONS_T;
  602.   MSG_PROPERTIES DBMS_AQ.MESSAGE_PROPERTIES_T;
  603.   PAYLOAD TP_Q_MT_SMS_AL_CP;
  604.   MSG_ID RAW ( 16 ) ;
  605.   RECIPIENT_ARRAY DBMS_AQ.AQ$_RECIPIENT_LIST_T;
  606.   --
  607.   MT_TYPE NUMBER;
  608. BEGIN
  609.   --
  610.   IF QUEUE_TYPE = 'SUBS' THEN
  611.     QUEUE_NAME := 'Q_MT_SMS_AL_SUBS_CP';
  612.     MT_TYPE    := PKG_ENUM_TYPES.EN_MT_TRANSACTIONS.MT_SUBSCRIPTION;
  613.   ELSE
  614.     QUEUE_NAME := 'Q_MT_SMS_AL_OND_CP';
  615.     MT_TYPE    := PKG_ENUM_TYPES.EN_MT_TRANSACTIONS.MT_ONDEMAND;
  616.   END IF;
  617.   --
  618.   PAYLOAD := TP_Q_MT_SMS_AL_CP ( CMQS_TRANSACTION_ID => TRANS_ID ,CMQS_SUBMIT_ID => MESSAGE_ID , CMQS_CPM_ID => CP_ID , CMQS_SOURCE => SHORT_CODE , CMQS_SUFFIX => SUFFIX , CMQS_SENDER_NAME => '' , CMQS_DESTINATION => MSISDN , CMQS_REQ_RECV_DTIME => SYSDATE , CMQS_MESSAGE_TYPE => MESSAGE_TYPE, CMQS_MESSAGE => MESSAGE , CMQS_MESSAGE_VALIDITY => '' , CMQS_MESSAGE_DLVDTIME => '' , CMQS_MT_TYPE => MT_TYPE, CMQS_SCHEDULED_DTIME => SYSDATE, CMQS_CHARGE_FLAG => CHARGE_FLAG, CMQS_DELV_RECPT_REQD => 1 , CMQS_CHANNEL_ID => ACCESS_CHANNEL, CMQS_RETRY_COUNTER => 0) ;
  619.   --
  620.   --
  621.   ENQUEUE_OPTIONS.VISIBILITY    := DBMS_AQ.IMMEDIATE;
  622.   RECIPIENT_ARRAY ( 1 )         := SYS.AQ$_AGENT ( 'INSTANCE1' , QUEUE_NAME , NULL ) ;
  623.   MSG_PROPERTIES.RECIPIENT_LIST := RECIPIENT_ARRAY;
  624.   MSG_PROPERTIES.PRIORITY       := PRIORITY;
  625.   --
  626.   DBMS_AQ.ENQUEUE ( QUEUE_NAME => QUEUE_NAME , ENQUEUE_OPTIONS => ENQUEUE_OPTIONS , MESSAGE_PROPERTIES => MSG_PROPERTIES , PAYLOAD => PAYLOAD , MSGID => MSG_ID ) ;
  627.   COMMIT;
  628.   --
  629. END;
  630. --
  631. --
  632. PROCEDURE PR_MO_SMSG_ENQ(
  633.     SHORT_CODE   VARCHAR2,
  634.     MSISDN       VARCHAR2,
  635.     MESSAGE_TYPE NUMBER,
  636.     MESSAGE      VARCHAR2,
  637.     TRANS_ID     VARCHAR2,
  638.     EXIT_STATUS OUT NUMBER )
  639. AS
  640.   PAYLOAD TP_Q_MO_SMSG_CP;
  641.   ENQUEUE_OPTIONS DBMS_AQ.ENQUEUE_OPTIONS_T;
  642.   MSG_PROPERTIES DBMS_AQ.MESSAGE_PROPERTIES_T;
  643.   MSG_ID RAW (16);
  644.   RECIPIENT_ARRAY DBMS_AQ.AQ$_RECIPIENT_LIST_T;
  645. BEGIN
  646.   EXIT_STATUS                   := 0;
  647.   PAYLOAD                       := TP_Q_MO_SMSG_CP (TRANS_ID, SHORT_CODE, MSISDN, MESSAGE_TYPE, MESSAGE);
  648.   ENQUEUE_OPTIONS.VISIBILITY    := DBMS_AQ.IMMEDIATE;
  649.   RECIPIENT_ARRAY (1)           := SYS.AQ$_AGENT ('INSTANCE1', 'Q_MO_SMSG_CP', NULL);
  650.   MSG_PROPERTIES.RECIPIENT_LIST := RECIPIENT_ARRAY;
  651.   DBMS_AQ.ENQUEUE (QUEUE_NAME => 'Q_MO_SMSG_CP', ENQUEUE_OPTIONS => ENQUEUE_OPTIONS, MESSAGE_PROPERTIES => MSG_PROPERTIES, PAYLOAD => PAYLOAD, MSGID => MSG_ID);
  652.   COMMIT;
  653.   IF (MSG_ID     = 0) THEN
  654.     EXIT_STATUS := -1;
  655.     RETURN;
  656.   END IF;
  657. EXCEPTION
  658. WHEN OTHERS THEN
  659.   EXIT_STATUS := -1;
  660. END PR_MO_SMSG_ENQ;
  661. --
  662. PROCEDURE PR_SMSG_MT_ENQUEUE(
  663.     TRANS_ID       VARCHAR2,
  664.     SHORT_CODE     VARCHAR2,
  665.     SENDER_NAME    VARCHAR2,
  666.     MSISDN         VARCHAR2,
  667.     MESSAGE_TYPE   NUMBER,
  668.     MESSAGE_HEADER VARCHAR2,
  669.     MESSAGE        VARCHAR2,
  670.     DELV_RECPT_REQ NUMBER ,
  671.     REFUND_FLAG    NUMBER)
  672. AS
  673.   FINAL_MESSAGE VARCHAR2 (2800);
  674.   ENQUEUE_OPTIONS DBMS_AQ.ENQUEUE_OPTIONS_T;
  675.   MSG_PROPERTIES DBMS_AQ.MESSAGE_PROPERTIES_T;
  676.   PAYLOAD TP_Q_MT_SMSG_CP;
  677.   MSG_ID RAW (16);
  678.   RECIPIENT_ARRAY DBMS_AQ.AQ$_RECIPIENT_LIST_T;
  679.   MAX_RETRY_COUNTER NUMBER;
  680.   FINAL_SENDER_NAME VARCHAR2(32);
  681. BEGIN
  682.   MAX_RETRY_COUNTER := 4;
  683.   FINAL_SENDER_NAME := SENDER_NAME;
  684.   --
  685.   IF MESSAGE_TYPE  = 245 THEN
  686.     FINAL_MESSAGE := MESSAGE_HEADER || MESSAGE;
  687.   ELSE
  688.     FINAL_MESSAGE := MESSAGE;
  689.   END IF;
  690.   IF SENDER_NAME      IS NULL THEN
  691.     FINAL_SENDER_NAME := SHORT_CODE;
  692.   END IF;
  693.   --
  694.   --
  695.   PAYLOAD := TP_Q_MT_SMSG_CP (CMSQ_TRASACTION_ID => TRANS_ID, CMSQ_SHORT_CODE => SHORT_CODE, CMSQ_SENDER_NAME => FINAL_SENDER_NAME, CMSQ_MSISDN => MSISDN, CMSQ_MESSAGE_TYPE => MESSAGE_TYPE, CMSQ_MESSAGE => FINAL_MESSAGE, CMSQ_MESSAGE_VALIDITY => '', CMSQ_MESSAGE_DLV_TIME => '', CMSQ_DELV_RECPT_REQ => DELV_RECPT_REQ, CMSQ_REFUND_FLAG => REFUND_FLAG, CMSQ_RETRY_CNT => MAX_RETRY_COUNTER);
  696.   --
  697.   ENQUEUE_OPTIONS.VISIBILITY    := DBMS_AQ.IMMEDIATE;
  698.   RECIPIENT_ARRAY (1)           := SYS.AQ$_AGENT ('I' || SHORT_CODE, 'Q_MT_SMSG_CP', NULL);
  699.   MSG_PROPERTIES.RECIPIENT_LIST := RECIPIENT_ARRAY;
  700.   MSG_PROPERTIES.PRIORITY       := PKG_COMMON_TRANS.FN_GET_GATEWAY_ENQ_PRIORITY(TRANS_ID => TRANS_ID, SHORT_CODE => SHORT_CODE);
  701.   --
  702.   DBMS_AQ.ENQUEUE (QUEUE_NAME => 'Q_MT_SMSG_CP', ENQUEUE_OPTIONS => ENQUEUE_OPTIONS, MESSAGE_PROPERTIES => MSG_PROPERTIES, PAYLOAD => PAYLOAD, MSGID => MSG_ID);
  703.   --
  704.   COMMIT;
  705. END PR_SMSG_MT_ENQUEUE;
  706. --
  707. PROCEDURE PR_SMSG_MT_ENQUEUE(
  708.     OBJ_TP_Q_MT_SMSG_CP TP_Q_MT_SMSG_CP)
  709. AS
  710.   ENQUEUE_OPTIONS DBMS_AQ.ENQUEUE_OPTIONS_T;
  711.   MSG_PROPERTIES DBMS_AQ.MESSAGE_PROPERTIES_T;
  712.   PAYLOAD TP_Q_MT_SMSG_CP := OBJ_TP_Q_MT_SMSG_CP;
  713.   MSG_ID RAW (16);
  714.   RECIPIENT_ARRAY DBMS_AQ.AQ$_RECIPIENT_LIST_T;
  715. BEGIN
  716.   --
  717.   ENQUEUE_OPTIONS.VISIBILITY    := DBMS_AQ.IMMEDIATE;
  718.   RECIPIENT_ARRAY (1)           := SYS.AQ$_AGENT ('I' || OBJ_TP_Q_MT_SMSG_CP.CMSQ_SHORT_CODE, 'Q_MT_SMSG_CP', NULL);
  719.   MSG_PROPERTIES.RECIPIENT_LIST := RECIPIENT_ARRAY;
  720.   MSG_PROPERTIES.PRIORITY       := PKG_COMMON_TRANS.FN_GET_GATEWAY_ENQ_PRIORITY(TRANS_ID => OBJ_TP_Q_MT_SMSG_CP.CMSQ_TRASACTION_ID, SHORT_CODE => OBJ_TP_Q_MT_SMSG_CP.CMSQ_SHORT_CODE);
  721.   --
  722.   DBMS_AQ.ENQUEUE (QUEUE_NAME => 'Q_MT_SMSG_CP', ENQUEUE_OPTIONS => ENQUEUE_OPTIONS, MESSAGE_PROPERTIES => MSG_PROPERTIES, PAYLOAD => PAYLOAD, MSGID => MSG_ID);
  723.   --
  724.   COMMIT;
  725. END;
  726. --
  727. PROCEDURE PR_SMSG_MT_ENQUEUE_SCHED(
  728.     TRANS_ID        VARCHAR2,
  729.     SHORT_CODE      VARCHAR2,
  730.     SENDER_NAME     VARCHAR2,
  731.     MSISDN          VARCHAR2,
  732.     MESSAGE_TYPE    NUMBER,
  733.     MESSAGE_HEADER  VARCHAR2,
  734.     MESSAGE         VARCHAR2,
  735.     DELV_RECPT_REQ  NUMBER,
  736.     REFUND_FLAG     NUMBER,
  737.     SCHEDULED_DTIME DATE)
  738. AS
  739.   FINAL_MESSAGE VARCHAR2 (2800);
  740.   ENQUEUE_OPTIONS DBMS_AQ.ENQUEUE_OPTIONS_T;
  741.   MSG_PROPERTIES DBMS_AQ.MESSAGE_PROPERTIES_T;
  742.   PAYLOAD TP_Q_MT_SMSG_CP;
  743.   MSG_ID RAW (16);
  744.   RECIPIENT_ARRAY DBMS_AQ.AQ$_RECIPIENT_LIST_T;
  745.   MAX_RETRY_COUNTER NUMBER;
  746.   FINAL_SENDER_NAME VARCHAR2 (32);
  747. BEGIN
  748.   MAX_RETRY_COUNTER := 4;
  749.   FINAL_SENDER_NAME := SENDER_NAME;
  750.   --
  751.   IF MESSAGE_TYPE  = 245 THEN
  752.     FINAL_MESSAGE := MESSAGE_HEADER || MESSAGE;
  753.   ELSE
  754.     FINAL_MESSAGE := MESSAGE;
  755.   END IF;
  756.   --
  757.   IF SENDER_NAME      IS NULL THEN
  758.     FINAL_SENDER_NAME := SHORT_CODE;
  759.   END IF;
  760.   --
  761.   --
  762.   PAYLOAD := TP_Q_MT_SMSG_CP (CMSQ_TRASACTION_ID => TRANS_ID, CMSQ_SHORT_CODE => SHORT_CODE, CMSQ_SENDER_NAME => FINAL_SENDER_NAME, CMSQ_MSISDN => MSISDN, CMSQ_MESSAGE_TYPE => MESSAGE_TYPE, CMSQ_MESSAGE => FINAL_MESSAGE, CMSQ_MESSAGE_VALIDITY => '', CMSQ_MESSAGE_DLV_TIME => '', CMSQ_DELV_RECPT_REQ => DELV_RECPT_REQ, CMSQ_REFUND_FLAG => REFUND_FLAG, CMSQ_RETRY_CNT => MAX_RETRY_COUNTER);
  763.   --
  764.   --
  765.   ENQUEUE_OPTIONS.VISIBILITY    := DBMS_AQ.IMMEDIATE;
  766.   RECIPIENT_ARRAY (1)           := SYS.AQ$_AGENT ('INSTANCE1', 'Q_MT_SMSG_DELAY_CP', NULL);
  767.   MSG_PROPERTIES.RECIPIENT_LIST := RECIPIENT_ARRAY;
  768.   MSG_PROPERTIES.PRIORITY       := PKG_COMMON_TRANS.FN_GET_GATEWAY_ENQ_PRIORITY(TRANS_ID => TRANS_ID, SHORT_CODE => SHORT_CODE);
  769.   --
  770.   IF SCHEDULED_DTIME              IS NOT NULL THEN
  771.     IF (SCHEDULED_DTIME                               - SYSDATE) > 0 THEN
  772.       MSG_PROPERTIES.DELAY        := (SCHEDULED_DTIME - SYSDATE) * 24 * 60 * 60;
  773.     END IF;
  774.   END IF;
  775.   --
  776.   --
  777.   DBMS_AQ.ENQUEUE (QUEUE_NAME => 'Q_MT_SMSG_DELAY_CP', ENQUEUE_OPTIONS => ENQUEUE_OPTIONS, MESSAGE_PROPERTIES => MSG_PROPERTIES, PAYLOAD => PAYLOAD, MSGID => MSG_ID);
  778.   --
  779.   --
  780.   COMMIT;
  781. END PR_SMSG_MT_ENQUEUE_SCHED;
  782. --
  783. PROCEDURE PR_SMS_MT_SMPP_SUBMIT_INSERT(
  784.     IP_ADDRESS                IN VARCHAR2 ,
  785.     PORT_NO                   IN NUMBER ,
  786.     USER_NAME                 IN VARCHAR2 ,
  787.     SERVICE_TYPE              IN VARCHAR2 ,
  788.     SOURCE_ADDR_TON           IN NUMBER ,
  789.     SOURCE_ADDR_NPI           IN NUMBER ,
  790.     IN_SOURCE_ADDR            IN VARCHAR2 ,
  791.     DEST_ADDR_TON             IN NUMBER ,
  792.     DEST_ADDR_NPI             IN NUMBER ,
  793.     DEST_ADDR                 IN VARCHAR2 ,
  794.     ESM_CLASS                 IN NUMBER ,
  795.     PROTOCOL_ID               IN VARCHAR2 ,
  796.     PRIORITY_FLAG             IN NUMBER ,
  797.     SCHEDULE_DELIVERY_TIME    IN VARCHAR2 ,
  798.     VALIDITY_PERIOD           IN VARCHAR2 ,
  799.     REGISTERED_DELIVERY       IN NUMBER ,
  800.     REPLACE_IF_PRESENT_FLAG   IN NUMBER ,
  801.     DATA_CODING               IN NUMBER ,
  802.     SM_DEFAULT_MSG_ID         IN NUMBER ,
  803.     SM_LENGTH                 IN NUMBER ,
  804.     SHORT_MESSAGE_CONV        IN VARCHAR2 ,
  805.     USER_MESSAGE_REFERENCE    IN NUMBER ,
  806.     SOURCE_PORT               IN NUMBER ,
  807.     SOURCE_ADDR_SUBUNIT       IN NUMBER ,
  808.     DEST_PORT                 IN NUMBER ,
  809.     DEST_ADDR_SUBUNIT         IN NUMBER ,
  810.     SAR_MSG_REF_NUM           IN NUMBER ,
  811.     SAR_TOTAL_SEGMENTS        IN NUMBER ,
  812.     SAR_SEGMENT_SEQNUM        IN NUMBER ,
  813.     MORE_MESSAGES_TO_SEND     IN NUMBER ,
  814.     PAYLOAD_TYPE              IN NUMBER ,
  815.     MESSAGE_PAYLOAD           IN VARCHAR2 ,
  816.     PRIVACY_INDICATOR         IN NUMBER ,
  817.     CALLBACK_NUM              IN VARCHAR2 ,
  818.     CALLBACK_NUM_PRES_IND     IN NUMBER ,
  819.     CALLBACK_NUM_ATAG         IN VARCHAR2 ,
  820.     SOURCE_SUBADDRESS         IN VARCHAR2 ,
  821.     DEST_SUBADDRESS           IN VARCHAR2 ,
  822.     USER_RESPONSE_CODE        IN NUMBER ,
  823.     DISPLAY_TIME              IN NUMBER ,
  824.     SMS_SIGNAL                IN NUMBER ,
  825.     MS_VALIDITY               IN NUMBER ,
  826.     MS_MSG_WAIT_FACILITIES    IN NUMBER ,
  827.     NUMBER_OF_MESSAGES        IN NUMBER ,
  828.     ALERT_ON_MESSAGE_DELIVERY IN VARCHAR2 ,
  829.     LANGUAGE_INDICATOR        IN NUMBER ,
  830.     ITS_REPLY_TYPE            IN NUMBER ,
  831.     ITS_SESSION_INFO          IN VARCHAR2 ,
  832.     USSD_SERVICE_OP           IN NUMBER ,
  833.     SHORT_MESSAGE             IN VARCHAR2 ,
  834.     PROTOCOL_TYPE             IN VARCHAR2,
  835.     SMPP_ID                   IN NUMBER)
  836. AS
  837.   --
  838. BEGIN
  839.   --
  840.   INSERT
  841.   INTO SMPPSERVER_SUBMIT_DATA
  842.     (
  843.       MESSAGE_ID ,
  844.       IP_ADDRESS ,
  845.       PORT_NO ,
  846.       USER_NAME ,
  847.       SERVICE_TYPE ,
  848.       SOURCE_ADDR_TON ,
  849.       SOURCE_ADDR_NPI ,
  850.       SOURCE_ADDR ,
  851.       DEST_ADDR_TON ,
  852.       DEST_ADDR_NPI ,
  853.       DEST_ADDR ,
  854.       ESM_CLASS ,
  855.       PROTOCOL_ID ,
  856.       PRIORITY_FLAG ,
  857.       SCHEDULE_DELIVERY_TIME ,
  858.       VALIDITY_PERIOD ,
  859.       REGISTERED_DELIVERY ,
  860.       REPLACE_IF_PRESENT_FLAG ,
  861.       DATA_CODING ,
  862.       SM_DEFAULT_MSG_ID ,
  863.       SM_LENGTH ,
  864.       SHORT_MESSAGE ,
  865.       USER_MESSAGE_REFERENCE ,
  866.       SOURCE_PORT ,
  867.       SOURCE_ADDR_SUBUNIT ,
  868.       DEST_PORT ,
  869.       DEST_ADDR_SUBUNIT ,
  870.       SAR_MSG_REF_NUM ,
  871.       SAR_TOTAL_SEGMENTS ,
  872.       SAR_SEGMENT_SEQNUM ,
  873.       MORE_MESSAGES_TO_SEND ,
  874.       PAYLOAD_TYPE ,
  875.       MESSAGE_PAYLOAD ,
  876.       PRIVACY_INDICATOR ,
  877.       CALLBACK_NUM ,
  878.       CALLBACK_NUM_PRES_IND ,
  879.       CALLBACK_NUM_ATAG ,
  880.       SOURCE_SUBADDRESS ,
  881.       DEST_SUBADDRESS ,
  882.       USER_RESPONSE_CODE ,
  883.       DISPLAY_TIME ,
  884.       SMS_SIGNAL ,
  885.       MS_VALIDITY ,
  886.       MS_MSG_WAIT_FACILITIES ,
  887.       NUMBER_OF_MESSAGES ,
  888.       ALERT_ON_MESSAGE_DELIVERY,
  889.       LANGUAGE_INDICATOR ,
  890.       ITS_REPLY_TYPE ,
  891.       ITS_SESSION_INFO ,
  892.       USSD_SERVICE_OP ,
  893.       SHORT_MESSAGE_CONV ,
  894.       PROTOCOL_TYPE
  895.     )
  896.     VALUES
  897.     (
  898.       SMPP_ID ,
  899.       IP_ADDRESS ,
  900.       PORT_NO ,
  901.       USER_NAME ,
  902.       SERVICE_TYPE ,
  903.       SOURCE_ADDR_TON ,
  904.       SOURCE_ADDR_NPI ,
  905.       IN_SOURCE_ADDR ,
  906.       DEST_ADDR_TON ,
  907.       DEST_ADDR_NPI ,
  908.       DEST_ADDR ,
  909.       ESM_CLASS ,
  910.       PROTOCOL_ID ,
  911.       PRIORITY_FLAG ,
  912.       SCHEDULE_DELIVERY_TIME ,
  913.       VALIDITY_PERIOD ,
  914.       REGISTERED_DELIVERY ,
  915.       REPLACE_IF_PRESENT_FLAG ,
  916.       DATA_CODING ,
  917.       SM_DEFAULT_MSG_ID ,
  918.       SM_LENGTH ,
  919.       SHORT_MESSAGE ,
  920.       USER_MESSAGE_REFERENCE ,
  921.       SOURCE_PORT ,
  922.       SOURCE_ADDR_SUBUNIT ,
  923.       DEST_PORT ,
  924.       DEST_ADDR_SUBUNIT ,
  925.       SAR_MSG_REF_NUM ,
  926.       SAR_TOTAL_SEGMENTS ,
  927.       SAR_SEGMENT_SEQNUM ,
  928.       MORE_MESSAGES_TO_SEND ,
  929.       PAYLOAD_TYPE ,
  930.       MESSAGE_PAYLOAD ,
  931.       PRIVACY_INDICATOR ,
  932.       CALLBACK_NUM ,
  933.       CALLBACK_NUM_PRES_IND ,
  934.       CALLBACK_NUM_ATAG ,
  935.       SOURCE_SUBADDRESS ,
  936.       DEST_SUBADDRESS ,
  937.       USER_RESPONSE_CODE ,
  938.       DISPLAY_TIME ,
  939.       SMS_SIGNAL ,
  940.       MS_VALIDITY ,
  941.       MS_MSG_WAIT_FACILITIES ,
  942.       NUMBER_OF_MESSAGES ,
  943.       ALERT_ON_MESSAGE_DELIVERY,
  944.       LANGUAGE_INDICATOR ,
  945.       ITS_REPLY_TYPE ,
  946.       ITS_SESSION_INFO ,
  947.       USSD_SERVICE_OP ,
  948.       SHORT_MESSAGE_CONV ,
  949.       PROTOCOL_TYPE
  950.     );
  951.   --
  952.   COMMIT;
  953.   --
  954. END PR_SMS_MT_SMPP_SUBMIT_INSERT;
  955. --
  956. PROCEDURE PR_VALIDATE_TRANS_INSERT_MT
  957.   (
  958.     OBJ_CP_MT_DETAILS IN TP_O_MT_DETAILS_SMS
  959.   )
  960. AS
  961. BEGIN
  962.   PKG_COMMON_TRANS.PR_VALIDATE_TRANS_INSERT_MT ( TRANSACTION_ID => OBJ_CP_MT_DETAILS.TRANSACTION_ID, MESSAGE_ID_INT => OBJ_CP_MT_DETAILS.MESSAGE_ID, MESSAGE_ID_EXT => OBJ_CP_MT_DETAILS.CP_MESSAGE_ID, REQ_RECV_DTIME => OBJ_CP_MT_DETAILS.REQ_RECV_DTIME, CP_ID => OBJ_CP_MT_DETAILS.CP_ID, SHORT_CODE => OBJ_CP_MT_DETAILS.SHORT_CODE, MSISDN => OBJ_CP_MT_DETAILS.MSISDN, CHARGE_FLAG => OBJ_CP_MT_DETAILS.CHARGE_FLAG, MT_TARIFF_ID => OBJ_CP_MT_DETAILS.TARIFF_ID, PRICE => OBJ_CP_MT_DETAILS.PRICE, MT_TYPE => OBJ_CP_MT_DETAILS.MT_TYPE, SERVICE_TYPE => PKG_ENUM_TYPES.EN_SERVICES.SMS, NEXT_MT_RESET_DATE => OBJ_CP_MT_DETAILS.NEXT_MT_COUNTER_RESET_DATE);
  963. END PR_VALIDATE_TRANS_INSERT_MT;
  964. --
  965. PROCEDURE PR_DELVER_DATA_ENQ
  966.   (
  967.     MO_DETAILS_SMS_CP IN TP_O_MO_DETAILS_SMS_CP
  968.   )
  969. AS
  970.   --
  971.   QUEUE_NAME VARCHAR2
  972.   (
  973.     40
  974.   )
  975.   ;
  976.   ENQUEUE_OPTIONS DBMS_AQ.ENQUEUE_OPTIONS_T;
  977.   MSG_PROPERTIES DBMS_AQ.MESSAGE_PROPERTIES_T;
  978.   PAYLOAD TP_Q_MO_SMS_CHNL_SMPP_CP;
  979.   MSG_ID RAW (16);
  980.   RECIPIENT_ARRAY DBMS_AQ.AQ$_RECIPIENT_LIST_T;
  981.   --
  982.   MO_QUEUE_TYPE NUMBER:=2;
  983.   --
  984. BEGIN
  985.   --
  986.   QUEUE_NAME := 'Q_MO_SMS_CHNL_SMPP_CP';
  987.   --
  988.   ENQUEUE_OPTIONS.VISIBILITY    := DBMS_AQ.IMMEDIATE;
  989.   RECIPIENT_ARRAY (1)           := SYS.AQ$_AGENT ('SMPPSRVR'||MO_DETAILS_SMS_CP.SMPP_SERVER_NO, QUEUE_NAME, NULL);
  990.   MSG_PROPERTIES.RECIPIENT_LIST := RECIPIENT_ARRAY;
  991.   --
  992.   BEGIN
  993.     --
  994.     IF MO_QUEUE_TYPE=1 THEN
  995.       --
  996.       PAYLOAD                     := NEW TP_Q_MO_SMS_CHNL_SMPP_CP( '','', 0, 0, NULL, '1214', '', 0, NULL, 0, 'HI Test', 'HI test', 'ok', 'ok', 1234, 0, 0, 0, '', '', '172.20.23.12', '', 0, 0,NULL, NULL, NULL, '', '', NULL, '', '', 0, '', 1, 0, 0, 0, 0, 0, '','', 0,'', 0,'', 0, '','', '', 1, 1, '', 0, 0, 0, 0,'', '',0,0, 0, 0, 0, 0 );
  997.       PAYLOAD.MESSAGE_ID          :=1;
  998.       PAYLOAD.USER_NAME           :=MO_DETAILS_SMS_CP.SMPP_USER_NAME;
  999.       PAYLOAD.SOURCE_ADDR_TON     :=MO_DETAILS_SMS_CP.SMPP_SOURCE_ADDR_TON;
  1000.       PAYLOAD.SOURCE_ADDR_NPI     :=MO_DETAILS_SMS_CP.SMPP_SOURCE_ADDR_NPI;
  1001.       PAYLOAD.SOURCE_ADDR         :=MO_DETAILS_SMS_CP.MSISDN;
  1002.       PAYLOAD.DEST_ADDR_TON       :=MO_DETAILS_SMS_CP.SMPP_DEST_ADDR_TON;
  1003.       PAYLOAD.DEST_ADDR_NPI       :=MO_DETAILS_SMS_CP.SMPP_DEST_ADDR_NPI;
  1004.       PAYLOAD.DEST_ADDR           :=MO_DETAILS_SMS_CP.SHORT_CODE;
  1005.       PAYLOAD.ESM_CLASS           :=MO_DETAILS_SMS_CP.SMPP_ESM_CLASS;
  1006.       PAYLOAD.DATA_CODING         :=MO_DETAILS_SMS_CP.SMPP_DCS;
  1007.       PAYLOAD.SM_LENGTH           :=MO_DETAILS_SMS_CP.SMPP_SM_LENGTH;
  1008.       PAYLOAD.SHORT_MESSAGE       :=MO_DETAILS_SMS_CP.MESSAGE_RECEIVED;
  1009.       PAYLOAD.RECEIPTED_MESSAGE_ID:=MO_DETAILS_SMS_CP.TRANSACTION_ID;
  1010.       PAYLOAD.PROTOCOL_TYPE       :='U';
  1011.       PAYLOAD.MSG_STAT            :='R';
  1012.       PAYLOAD.RECVD_DATE          :=SYSDATE;
  1013.       PAYLOAD.REQ_RECV_DTIME      :=SYSDATE;
  1014.       PAYLOAD.LAST_PROCESSED_DATE :=SYSDATE;
  1015.       --
  1016.       --PAYLOAD.VALIDITY_PERIOD          :=''       ;
  1017.       --PAYLOAD.SUBMIT_DATE              := ''     ;
  1018.       --PAYLOAD.DONE_DATE                :=''       ;
  1019.       --PAYLOAD.SCHEDULE_DELIVERY_TIME   :='';
  1020.       --
  1021.       DBMS_AQ.ENQUEUE (QUEUE_NAME => QUEUE_NAME, ENQUEUE_OPTIONS => ENQUEUE_OPTIONS, MESSAGE_PROPERTIES => MSG_PROPERTIES, PAYLOAD => PAYLOAD, MSGID => MSG_ID);
  1022.       --
  1023.       -- EXCEPTION
  1024.       -- WHEN OTHERS THEN
  1025.       --  PR_CDC_ERROR_INSERT ( APPLN_DESC => 'PKG_SMPP_SERVER.PR_DELVER_DATA_ENQ', ERR_MSG => SQLERRM ) ;
  1026.     ELSE
  1027.       IF ((MO_DETAILS_SMS_CP.SMPP_DCS = 0 OR MO_DETAILS_SMS_CP.SMPP_DCS = 3) AND MO_DETAILS_SMS_CP.SMPP_SM_LENGTH <= 160) THEN
  1028.         INSERT
  1029.         INTO SMPPSERVER_DELIVER_DATA
  1030.           (
  1031.             MESSAGE_ID ,
  1032.             USER_NAME ,
  1033.             SOURCE_ADDR_TON ,
  1034.             SOURCE_ADDR_NPI ,
  1035.             SOURCE_ADDR ,
  1036.             DEST_ADDR_TON ,
  1037.             DEST_ADDR_NPI ,
  1038.             DEST_ADDR ,
  1039.             ESM_CLASS ,
  1040.             DATA_CODING ,
  1041.             SM_LENGTH ,
  1042.             SHORT_MESSAGE ,
  1043.             PROTOCOL_TYPE ,
  1044.             MSG_STAT ,
  1045.             RECEIPTED_MESSAGE_ID,
  1046.             SERVER_NO
  1047.           )
  1048.           VALUES
  1049.           (
  1050.             SMPPSERVER_DELIVER_DATA_SEQ.NEXTVAL ,
  1051.             MO_DETAILS_SMS_CP.SMPP_USER_NAME ,
  1052.             MO_DETAILS_SMS_CP.SMPP_SOURCE_ADDR_TON,
  1053.             MO_DETAILS_SMS_CP.SMPP_SOURCE_ADDR_NPI,
  1054.             MO_DETAILS_SMS_CP.MSISDN ,
  1055.             MO_DETAILS_SMS_CP.SMPP_DEST_ADDR_TON ,
  1056.             MO_DETAILS_SMS_CP.SMPP_DEST_ADDR_NPI ,
  1057.             MO_DETAILS_SMS_CP.SHORT_CODE ,
  1058.             MO_DETAILS_SMS_CP.SMPP_ESM_CLASS ,
  1059.             MO_DETAILS_SMS_CP.SMPP_DCS ,
  1060.             MO_DETAILS_SMS_CP.SMPP_SM_LENGTH ,
  1061.             MO_DETAILS_SMS_CP.MESSAGE_RECEIVED ,
  1062.             'U' ,
  1063.             'R' ,
  1064.             MO_DETAILS_SMS_CP.TRANSACTION_ID ,
  1065.             MO_DETAILS_SMS_CP.SMPP_SERVER_NO
  1066.           );
  1067.       ELSIF ((MO_DETAILS_SMS_CP.SMPP_DCS = 8 OR MO_DETAILS_SMS_CP.SMPP_DCS = 4) AND MO_DETAILS_SMS_CP.SMPP_SM_LENGTH <= 70) THEN
  1068.         INSERT
  1069.         INTO SMPPSERVER_DELIVER_DATA
  1070.           (
  1071.             MESSAGE_ID ,
  1072.             USER_NAME ,
  1073.             SOURCE_ADDR_TON ,
  1074.             SOURCE_ADDR_NPI ,
  1075.             SOURCE_ADDR ,
  1076.             DEST_ADDR_TON ,
  1077.             DEST_ADDR_NPI ,
  1078.             DEST_ADDR ,
  1079.             ESM_CLASS ,
  1080.             DATA_CODING ,
  1081.             SM_LENGTH ,
  1082.             SHORT_MESSAGE ,
  1083.             PROTOCOL_TYPE ,
  1084.             MSG_STAT ,
  1085.             RECEIPTED_MESSAGE_ID,
  1086.             SERVER_NO
  1087.           )
  1088.           VALUES
  1089.           (
  1090.             SMPPSERVER_DELIVER_DATA_SEQ.NEXTVAL ,
  1091.             MO_DETAILS_SMS_CP.SMPP_USER_NAME ,
  1092.             MO_DETAILS_SMS_CP.SMPP_SOURCE_ADDR_TON,
  1093.             MO_DETAILS_SMS_CP.SMPP_SOURCE_ADDR_NPI,
  1094.             MO_DETAILS_SMS_CP.MSISDN ,
  1095.             MO_DETAILS_SMS_CP.SMPP_DEST_ADDR_TON ,
  1096.             MO_DETAILS_SMS_CP.SMPP_DEST_ADDR_NPI ,
  1097.             MO_DETAILS_SMS_CP.SHORT_CODE ,
  1098.             MO_DETAILS_SMS_CP.SMPP_ESM_CLASS ,
  1099.             MO_DETAILS_SMS_CP.SMPP_DCS ,
  1100.             MO_DETAILS_SMS_CP.SMPP_SM_LENGTH ,
  1101.             MO_DETAILS_SMS_CP.MESSAGE_RECEIVED ,
  1102.             'U' ,
  1103.             'R' ,
  1104.             MO_DETAILS_SMS_CP.TRANSACTION_ID ,
  1105.             MO_DETAILS_SMS_CP.SMPP_SERVER_NO
  1106.           );
  1107.       END IF;
  1108.     END IF;
  1109.     COMMIT;
  1110.     --
  1111.   END;
  1112. END PR_DELVER_DATA_ENQ;
  1113. --
  1114. END PKG_COMMON_TRANS_SMS;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement