--- /dev/null
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(org.tizen.ciss C)
+SET(APPNAME ciss)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(BINDIR "${PREFIX}/bin")
+SET(RESDIR "${PREFIX}/res")
+SET(DATADIR "${PREFIX}/data")
+SET(LOCALEDIR "${RESDIR}/locale")
+SET(EDJDIR "${RESDIR}/edje")
+SET(IMGDIR "${RESDIR}/images")
+
+ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
+ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
+ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"")
+ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
+ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
+ADD_DEFINITIONS("-DIMGDIR=\"${IMGDIR}\"")
+
+SET(CISS_SRCS
+ src/ciss-main.c
+ src/ciss-parser.c
+ src/ciss-tapi-request.c
+ src/ciss-ussd.c
+ src/ciss-resp.c
+ src/ciss-widget.c
+ src/ciss-util.c
+ src/ciss-respnd.c
+ src/ciss-converter.c
+)
+
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(ciss_pkgs REQUIRED tapi appcore-efl glib-2.0 gobject-2.0 vconf elementary UI-idlecapture utilX dlog aul bundle ecore ecore-imf ecore-x ecore-input)
+FOREACH(flag ${ciss_pkgs_CFLAGS})
+ SET(CISS_EXTRA_CFLAGS "${CISS_EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CISS_EXTRA_CFLAGS}")
+
+ADD_EXECUTABLE(${APPNAME} ${CISS_SRCS})
+TARGET_LINK_LIBRARIES(${APPNAME} ${ciss_pkgs_LDFLAGS})
+
+ADD_CUSTOM_TARGET(ciss-mmi.edj
+ COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/resource/images
+ ${CMAKE_SOURCE_DIR}/resource/ciss-mmi.edc ${CMAKE_BINARY_DIR}/ciss-mmi.edj
+ DEPENDS ${CMAKE_SOURCE_DIR}/resource/ciss-mmi.edc
+)
+ADD_DEPENDENCIES(${APPNAME} ciss-mmi.edj)
+
+CONFIGURE_FILE(${PROJECT_NAME}.desktop.in ${CMAKE_SOURCE_DIR}/${PROJECT_NAME}.desktop)
+INSTALL(TARGETS ${APPNAME} DESTINATION bin)
+INSTALL(DIRECTORY DESTINATION ${DATADIR})
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PROJECT_NAME}.desktop DESTINATION /opt/share/applications/)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/ciss-mmi.edj DESTINATION ${EDJDIR})
+# i18n
+ADD_SUBDIRECTORY(po)
--- /dev/null
+1. make the build directory
+
+ ex)
+
+ $ mkdir build
+
+
+2. change the working directory to the build directory
+
+ ex)
+
+ $ cd build
+
+
+3. run 'cmake'
+
+ $ cmake ${SOURCE_DIR} - DCMAKE_INSTALL_PREFIX=/opt/apps/ciss
+
+ ex)
+
+ $ cmake .. -DCMAKE_INSTALL_PREFIX=/opt/apps/ciss
+
+ or
+
+ $ cmake ..
+
+
+4. make & make install
+
+ ex)
+
+ $ make -j 2 && make install
+
--- /dev/null
+Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
\ No newline at end of file
--- /dev/null
+ciss (0.4.45) unstable; urgency=low
+
+ * Upload pkg.
+ * Apply EFL migration change
+ * Update boilerplate
+ * Git : pkgs/c/ciss
+ * Tag : ciss_0.4.45
+
+ -- Jungmin Kim <jm15.kim@samsung.com> Fri, 17 Feb 2012 08:50:43 +0900
+
+ciss (0.4.44) unstable; urgency=low
+
+ * Upload pkg.
+ * Git : pkgs/c/ciss
+ * Tag : ciss_0.4.44
+
+ -- Jungmin Kim <jm15.kim@samsung.com> Mon, 09 Jan 2012 16:10:13 +0900
+
+ciss (0.4.43) unstable; urgency=low
+
+ * Rename org.tizen
+ * Git : pkgs/c/ciss
+ * Tag : ciss_0.4.43
+
+ -- Jungmin Kim <jm15.kim@samsung.com> Thu, 22 Dec 2011 20:21:47 +0900
+
+ciss (0.4.42) unstable; urgency=low
+
+ * Git init
+ * Git : pkgs/c/ciss
+ * Tag : ciss_0.4.42
+
+ -- Jungmin Kim <jm15.kim@samsung.com> Fri, 16 Dec 2011 12:47:55 +0900
--- /dev/null
+Source: ciss
+Section: devel
+Priority: extra
+Maintainer: Jungmin Kim <jm15.kim@samsung.com>, Sungjoon Won <sungjoon.won@samsung.com>
+Uploaders: Jungmin Kim <jm15.kim@samsung.com>, Sungjoon Won <sungjoon.won@samsung.com>
+Build-Depends: debhelper (>= 5), autotools-dev, libappcore-efl-dev, libelm-dev, libui-idlecapture-dev, libslp-tapi-dev, libslp-utilx-dev, libbundle-dev, libaul-1-dev, dlog-dev
+Standards-Version: 0.1.0
+
+Package: org.tizen.ciss
+Section: devel
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: CISS-MMI application
+
+Package: org.tizen.ciss-dbg
+Section: debug
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, org.tizen.ciss-dbg (= ${Source-Version})
+Description: CISS-MMI application
--- /dev/null
+/*
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * This file is part of <ciss>
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use it only in accordance
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability of the software,
+ * either express or implied, including but not limited to the implied warranties of merchantability,
+ * fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,
+ * modifying or distributing this software or its derivatives.
+ *
+ */
+
--- /dev/null
+usr/bin
+usr/sbin
--- /dev/null
+CMakeCache.txt
+CMakeLists.txt
--- /dev/null
+@PREFIX@/bin/*
+@PREFIX@/res/locale/*
+@PREFIX@/data
+@PREFIX@/res/edje/*
+/opt/share/applications/*
--- /dev/null
+#! /bin/sh
+
+if [ ${USER} == "root" ]
+then
+ # 5000 is inhouse user id
+ # do not use relative path
+ chown -R 5000:5000 @PREFIX@/data
+fi
--- /dev/null
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+PREFIX ?= /opt/apps/org.tizen.ciss
+RESDIR ?= /opt/apps/org.tizen.ciss/res
+DATADIR ?= /opt/apps/org.tizen.ciss/data
+CFLAGS ?=
+CFLAGS += -Wall -g -fpie
+CXXFLAGS ?=
+CXXFLAGS += -Wall -g -fpie
+LDFLAGS ?=
+LDFLAGS += -Wl,--hash-style=both -Wl,--rpath=$(PREFIX)/lib -Wl,--as-needed -pie
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0
+else
+ CFLAGS += -O2
+endif
+
+configure: configure-stamp
+configure-stamp:
+ dh_testdir
+ # Add here commands to configure the package.
+ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" cmake . -DCMAKE_INSTALL_PREFIX=$(PREFIX)
+
+ touch configure-stamp
+
+
+build: build-stamp
+
+build-stamp: configure-stamp
+ dh_testdir
+
+ # Add here commands to compile the package.
+ $(MAKE)
+ #docbook-to-man debian/calllog.sgml > calllog.1
+
+ for f in `find $(CURDIR)/debian/ -name "*.in"`; do \
+ cat $$f > $${f%.in}; \
+ sed -i -e "s#@PREFIX@#$(PREFIX)#g" $${f%.in}; \
+ sed -i -e "s#@RESDIR@#$(RESDIR)#g" $${f%.in}; \
+ sed -i -e "s#@DATADIR@#$(DATADIR)#g" $${f%.in}; \
+ done
+
+ touch $@
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp configure-stamp
+
+ # Add here commands to clean up after the build process.
+ -$(MAKE) clean
+ rm -rf CMakeCache.txt
+ rm -rf CMakeFiles
+ rm -rf cmake_install.cmake
+ rm -rf Makefile
+ rm -rf install_manifest.txt
+ rm -rf *.so
+ rm -rf po/CMakeCache.txt
+ rm -rf po/CMakeFiles
+ rm -rf po/cmake_install.cmake
+ rm -rf po/Makefile
+ rm -rf po/install_manifest.txt
+ rm -rf po/*.so
+ rm -rf data/CMakeCache.txt
+ rm -rf data/CMakeFiles
+ rm -rf data/cmake_install.cmake
+ rm -rf data/Makefile
+ rm -rf data/install_manifest.txt
+ rm -rf data/*.so
+
+ rm -rf *.desktop
+ rm -rf *.edj
+ rm -rf theme/*.edj
+
+ for f in `find $(CURDIR)/debian/ -name "*.in"`; do \
+ rm -f $${f%.in}; \
+ done
+
+ dh_clean
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/calllog.
+ $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs
+ dh_installdocs
+ dh_installexamples
+ dh_install --sourcedir=debian/tmp
+# dh_installmenu
+# dh_installdebconf
+# dh_installlogrotate
+# dh_installemacsen
+# dh_installpam
+# dh_installmime
+# dh_python
+# dh_installinit
+# dh_installcron
+# dh_installinfo
+ dh_installman
+ dh_link
+# dh_strip
+ dh_strip --dbg-package=org.tizen.ciss-dbg
+ dh_compress
+ dh_fixperms
+# dh_perl
+ dh_makeshlibs
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
--- /dev/null
+/*
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * This file is part of <ciss>
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use it only in accordance
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability of the software,
+ * either express or implied, including but not limited to the implied warranties of merchantability,
+ * fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,
+ * modifying or distributing this software or its derivatives.
+ *
+ */
+
+#ifndef __CISS_MMI_H__
+#define __CISS_MMI_H__
+#include <ITapiSs.h>
+#include <Elementary.h>
+#include <vconf.h>
+#include <Ecore_IMF.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <sqlite3.h>
+
+#include "ciss-types.h"
+#include "ciss-debug.h"
+#include "ciss-string.h"
+
+#ifndef PREFIX
+#define PREFIX "/usr"
+#endif
+
+#ifdef _
+#undef _
+#endif
+
+#ifdef N_
+#undef N_
+#endif
+
+#define PACKAGE "org.tizen.ciss"
+#if !defined(LOCALEDIR)
+ # define LOCALEDIR "/opt/apps/org.tizen.ciss/res/locale"
+#endif
+
+#if !defined(EDJDIR)
+ # define EDJDIR "/opt/apps/org.tizen.ciss/res/edje"
+#endif
+
+#define EDJ_PATH EDJDIR
+#define EDJ_NAME EDJDIR"/ciss-mmi.edj"
+#define GRP_MAIN "main"
+#define IMG_DIR "/opt/apps/"PACKAGE"/res/images"
+
+#define _(s) gettext(s)
+#define _EDJ(o) elm_layout_edje_get(o)
+
+#define REQ_STRING_MAX_LEN 255
+#define MAX_PWD_CHAR 4
+#define MAX_SC_ENTRY 20
+#define MAX_USS_CHAR 160 /**< Max num of char is USS data*/
+#define MAX_SC_LEN 3 /**< Maximum length of service code */
+#define ENCODE_TYPE_GSM 0x0F /**< the value of the GSM encoding fromat for ussd */
+#define CISS_MMI_MAX_USSD_RESP_STRING 300
+#define CISS_MMI_MAX_SS_RESP_STRING 1664
+#define POPUP_DISPLAY_DURATION 10.0
+
+#define registerSS 10
+#define eraseSS 11
+#define activateSS 12
+#define deactivateSS 13
+#define interrogateSS 14
+#define notifySS 16
+#define registerPassword 17
+#define getPassword 18
+#define processUnstructuredSS_Data 19
+#define forwardCheckSS_Indication 38
+#define processUnstructuredSS_Request 59
+#define unstructuredSS_Request 60
+#define unstructuredSS_Notify 61
+
+
+typedef enum {
+ REQUEST_MODE, /* 0 */
+ RESPONSE_MODE,
+} launching_mode_t;
+
+
+/**
+ * The MMI string context
+ */
+typedef struct {
+ unsigned char opcode;
+ char user_string[MAX_USS_CHAR]; /**< String to be parsed */
+ int user_string_length; /**< length of string */
+ unsigned char dcs; /**< the data coding scheme for ussd */
+ unsigned char ss_flavor; /**< current SS code being processed */
+ unsigned char ss_type; /**< barring, forwarding, waiting, etc */
+ TelSsTeleService_t tapi_bsg; /**< The Basic Service Code */
+ char divert_number[CISS_NUMBER_LEN_MAX+1]; /**< call forwarding number*/
+ char nr_timer; /**< No Reply Timer */
+ char ss_password[CISS_MAX_PASSWORD_LEN+1]; /**< remember password if supplied so that */
+ char ss_new_password[CISS_MAX_PASSWORD_LEN+1]; /**< remember new password */
+ char ss_new_password2[CISS_MAX_PASSWORD_LEN+1]; /**< remember the new pwd supplied again */
+ char fdn_string[10]; /**< FDN string*/
+ char ss_code[MAX_SC_LEN + 1]; /**< the ss code */
+
+}ciss_mmi_context_t;
+
+struct appdata {
+ Evas *evas;
+
+ Evas_Object *win_main;
+ Evas_Object *indicator;
+ Evas_Object *nf;
+ Evas_Object *layout_main;
+ Evas_Object *content;
+ Evas_Object *view;
+ Evas_Object *popup;
+ Evas_Object *entry;
+ Evas_Object *ef_entry, *ef_layout;
+
+ Evas_Object *button;
+
+ Evas_Object *bg;
+
+ Elm_Object_Item *c_item[3];
+ Ecore_Timer *timer;
+ Ecore_Event_Handler *ise_event_handler;
+ Ecore_Event_Handler *end_key_event_handler;
+ Ecore_IMF_Context *imf_context;
+ Elm_Genlist_Item_Class *itc_ime;
+ Elm_Genlist_Item_Class *itc_multi_line;
+
+ TelSsInfo_t ss_info;
+ ciss_mmi_context_t mmi_ctx;
+
+ int launch_mode;
+ int cmd_type;
+ int cmd_id;
+ Eina_Bool is_sat_request;
+ int ussd_action_require;
+ int request_id;
+ unsigned char rel_comp_msg[TAPI_MAX_RELEASE_COMPLETE_DATA_LEN];
+ int rel_comp_msg_len;
+
+ char input[256];
+ char req_string[REQ_STRING_MAX_LEN];
+
+};
+
+typedef struct {
+ int even_class; /**< Event Class */
+ int event_type; /**< Event type */
+ int request_id; /**< This parameter is applicable only for Asynchronous solicited responses. The request id for a service request is sent back in the asynchronous response. For unsolicited indications, request id will be -1 */
+ int status; /**< This parameter is applicable only for Asynchronous solicited responses. This status parameter informs the actual result of Asynchronous response. For unsolicited indications, status will be -1 */
+ void *p_data; /**< Event Data - Based on Event type response/indications. Event data information is captured in each API Section */
+ int data_length; /**< Event Data size */
+} ciss_tapi_event_t;
+
+#endif /* __CISS_MMI_H__ */
+
--- /dev/null
+/*\r
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved \r
+ *\r
+ * This file is part of <ciss>\r
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>\r
+ *\r
+ * PROPRIETARY/CONFIDENTIAL\r
+ *\r
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").\r
+ * You shall not disclose such Confidential Information and shall use it only in accordance\r
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.\r
+ * SAMSUNG make no representations or warranties about the suitability of the software,\r
+ * either express or implied, including but not limited to the implied warranties of merchantability,\r
+ * fitness for a particular purpose, or non-infringement.\r
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,\r
+ * modifying or distributing this software or its derivatives.\r
+ *\r
+ */\r
+\r
+#ifndef _CISS_CONVERTER_MMI_H_\r
+#define _CISS_CONVERTER_MMI_H_\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif /* __cplusplus */\r
+\r
+#include "ITapiSs.h"\r
+#include "ciss-common.h"\r
+#include <glib.h>\r
+\r
+#define MAX_BSG_LEN 2\r
+\r
+ /* ALS_SUPPORT bug id: QCOM00001874 : entry increment by one for auxilliary telephony: Hari */\r
+#ifdef FEATURE_SAMSUNG_ALS\r
+#define MAX_BSG_ENTRY 47\r
+#else\r
+#define MAX_BSG_ENTRY 46\r
+#endif\r
+\r
+/*\r
+** Local Supplementary Service Codes (SC)\r
+*/\r
+\r
+#define CISS_ENG_SC_ALL ""\r
+#define CISS_ENG_SC_CF "002"\r
+#define CISS_ENG_SC_CFC "004"\r
+#define CISS_ENG_SC_CFU "21"\r
+#define CISS_ENG_SC_CFB "67"\r
+#define CISS_ENG_SC_CFNRY "61"\r
+#define CISS_ENG_SC_CFNRC "62"\r
+#define CISS_ENG_SC_CLIP "30"\r
+#define CISS_ENG_SC_CLIR "31"\r
+#define CISS_ENG_SC_COLP "76"\r
+#define CISS_ENG_SC_COLR "77"\r
+#define CISS_ENG_SC_CNAP "300"\r
+#define CISS_ENG_SC_CW "43"\r
+#define CISS_ENG_SC_B "330"\r
+#define CISS_ENG_SC_OB "333"\r
+#define CISS_ENG_SC_IB "353"\r
+#define CISS_ENG_SC_BAOC "33"\r
+#define CISS_ENG_SC_BOIC "331"\r
+#define CISS_ENG_SC_BOICEXHC "332"\r
+#define CISS_ENG_SC_BAIC "35"\r
+#define CISS_ENG_SC_BICROAM "351"\r
+\r
+/*\r
+** Local Basic Service Codes\r
+*/\r
+\r
+#define CISS_ENG_BSG_ALL ""\r
+#define CISS_ENG_BSG_ALL_TS "10"\r
+#define CISS_ENG_BSG_TELEPHONY "11"\r
+/* ALS_SUPPORT : added MMI code for auxilliary telephony */\r
+#ifdef FEATURE_SAMSUNG_ALS\r
+#define CISS_ENG_BSG_AUX_TELEPHONY "89"\r
+#endif\r
+#define CISS_ENG_BSG_ALL_DATA "12"\r
+#define CISS_ENG_BSG_FAX "13"\r
+#define CISS_ENG_BSG_SMS "16"\r
+#define CISS_ENG_BSG_ALL_TELE_EX_SMS "19"\r
+#define CISS_ENG_BSG_PLMN_TELE_ALL "50"\r
+#define CISS_ENG_BSG_PLMN_TELE_1 "51"\r
+#define CISS_ENG_BSG_PLMN_TELE_2 "51"\r
+#define CISS_ENG_BSG_PLMN_TELE_3 "53"\r
+#define CISS_ENG_BSG_PLMN_TELE_4 "54"\r
+#define CISS_ENG_BSG_PLMN_TELE_5 "55"\r
+#define CISS_ENG_BSG_PLMN_TELE_6 "56"\r
+#define CISS_ENG_BSG_PLMN_TELE_7 "57"\r
+#define CISS_ENG_BSG_PLMN_TELE_8 "58"\r
+#define CISS_ENG_BSG_PLMN_TELE_9 "59"\r
+#define CISS_ENG_BSG_PLMN_TELE_A "60"\r
+#define CISS_ENG_BSG_PLMN_TELE_B "61"\r
+#define CISS_ENG_BSG_PLMN_TELE_C "62"\r
+#define CISS_ENG_BSG_PLMN_TELE_D "63"\r
+#define CISS_ENG_BSG_PLMN_TELE_E "64"\r
+#define CISS_ENG_BSG_PLMN_TELE_F "65"\r
+\r
+#define CISS_ENG_BSG_ALL_BS "20"\r
+#define CISS_ENG_BSG_ALL_ASYNC "21"\r
+#define CISS_ENG_BSG_ALL_SYNC "22"\r
+#define CISS_ENG_BSG_ALL_DC_SYNC "24"\r
+#define CISS_ENG_BSG_ALL_DC_ASYNC "25"\r
+#define CISS_ENG_BSG_ALL_DED_PACKET "26"\r
+#define CISS_ENG_BSG_ALL_DED_PAD "27"\r
+#define CISS_ENG_BSG_12_KBIT "29"\r
+#define CISS_ENG_BSG_PLMN_BEAR_ALL "70"\r
+#define CISS_ENG_BSG_PLMN_BEAR_1 "71"\r
+#define CISS_ENG_BSG_PLMN_BEAR_2 "71"\r
+#define CISS_ENG_BSG_PLMN_BEAR_3 "73"\r
+#define CISS_ENG_BSG_PLMN_BEAR_4 "74"\r
+#define CISS_ENG_BSG_PLMN_BEAR_5 "75"\r
+#define CISS_ENG_BSG_PLMN_BEAR_6 "76"\r
+#define CISS_ENG_BSG_PLMN_BEAR_7 "77"\r
+#define CISS_ENG_BSG_PLMN_BEAR_8 "78"\r
+#define CISS_ENG_BSG_PLMN_BEAR_9 "79"\r
+#define CISS_ENG_BSG_PLMN_BEAR_A "80"\r
+#define CISS_ENG_BSG_PLMN_BEAR_B "81"\r
+#define CISS_ENG_BSG_PLMN_BEAR_C "82"\r
+#define CISS_ENG_BSG_PLMN_BEAR_D "83"\r
+#define CISS_ENG_BSG_PLMN_BEAR_E "84"\r
+#define CISS_ENG_BSG_PLMN_BEAR_F "85"\r
+\r
+typedef enum {\r
+ NO_CODE = -1,\r
+ BS_CODE,\r
+ TS_CODE,\r
+ MAX_CODE\r
+} bsg_code_type;\r
+\r
+\r
+typedef struct {\r
+ char* local_sc; /* local value of Service Code */\r
+ unsigned char tapi_flavor; /* TAPI flavor */\r
+ unsigned char ss_type; /* barring, fwding, waiting, etc*/\r
+} sc_table_element_type;\r
+\r
+\r
+/* convert between local and network BSG values */\r
+typedef struct {\r
+ char *local_bsg; /* local BSG value */\r
+ char bsg_type; /* BSG type - bearer services, teleservices */\r
+ TelSsTeleService_t tapi_bsg_code; /* TAPI BSG value */\r
+} bsg_table_element_type;\r
+\r
+int _ciss_convert_bsg_to_tapi_bsg(char *local_bsg, TelSsTeleService_t *tapi_bsg);\r
+int _ciss_convert_sc_to_tapi_flavor(char *sc, unsigned char *tapi_flavor, unsigned char *ss_type);\r
+\r
+/* temporarily added : need to correct when changes are finalized\r
+added for call divert type */\r
+int _ciss_get_tapi_forward_type(TelSsTeleService_t TelecommSvc, TelSsForwardType_t *pForwardType);\r
+\r
+/* temporarily added : need to correct when changes are finalized\r
+added for call barring type and call waiting */\r
+int _ciss_get_tapi_call_type(TelSsTeleService_t TelecommSvc, TelSsCallType_t *pCallType);\r
+\r
+/**\r
+ * This function gets the ciss error from the tapi error.\r
+ *\r
+ * @return This function returns TRUE on success, or false on failure.\r
+ * @param[in] tapi_err the tapi error\r
+ * @param[out] ciss_err the ciss error.\r
+ */\r
+int _ciss_get_error_from_tapi_error(ciss_err_t *ciss_err, TelSsCause_t tapi_err);\r
+\r
+/**\r
+ * This function gets the tapi ussd repsonse type from ciss repsonse type.\r
+ *\r
+ * @return This function returns TRUE on success, or false on failure.\r
+ * @param[in] resp_type the ciss repsonse type\r
+ * @param[out] p_tapi_resptype the tapi repsonse type.\r
+ */\r
+int _ciss_get_tapi_ussd_resp_type(ciss_ussd_response_type_t resp_type, TelSsUssdRespType_t *p_tapi_resptype);\r
+\r
+/**\r
+ * This function gets the tapi ussd indication type from ciss indication type.\r
+ *\r
+ * @return This function returns TRUE on success, or false on failure.\r
+ * @param[in] ind_type the ciss indication type\r
+ * @param[out] p_tapi_indtype the tapi indication type.\r
+ */\r
+int _ciss_get_tapi_ussd_ind_type(ciss_ussd_ind_type_t ind_type, TelSsUssdIndType_t *p_tapi_indtype);\r
+\r
+/**\r
+ * This function gets the ciss sbse service from the tapi tele service\r
+ *\r
+ * @return This function returns TRUE on success, or false on failure.\r
+ * @param[in] tapi_tele_service the tapi tele service\r
+ * @param[out] ciss_tele_service the ciss tele service\r
+ */\r
+int _ciss_get_telecomm_svc(TelSsTeleService_t in_teleservice, ciss_telecomm_svc_t *out_teleservice);\r
+\r
+/**\r
+ * This function gets the ciss flavor type of call forward from the tapi flavor type\r
+ *\r
+ * @return This function returns TRUE on success, or false on failure.\r
+ * @param[in] tapi_flavor_type the tapi flavor type\r
+ * @param[out] ciss_flavor_type the ciss flavor type\r
+ */\r
+int _ciss_get_forward_flavor_type(TelSsForwardWhen_t in_flavor, ciss_flavor_t *out_flavor);\r
+\r
+/**\r
+ * This function gets the ciss flavor type of call barring from the tapi flavor type\r
+ *\r
+ * @return This function returns TRUE on success, or false on failure.\r
+ * @param[in] tapi_flavor_type the tapi flavor type\r
+ * @param[out] ciss_flavor_type the ciss flavor type\r
+ */\r
+int _ciss_get_barring_flavor_type(TelSsCallBarType_t in_flavor, ciss_flavor_t *out_flavor);\r
+\r
+/**\r
+ * This function gets the ciss status type from the tapi status type\r
+ *\r
+ * @return This function returns TRUE on success, or false on failure.\r
+ * @param[in] tapi_status_type the tapi status type.\r
+ * @param[out] ciss_status_type the ciss status type.\r
+ */\r
+int _ciss_get_result_status_type(TelSsStatus_t in_status, ciss_status_t *out_status);\r
+\r
+/**\r
+ * This function gets the ciss indication type from the tapi indication type\r
+ *\r
+ * @return This function returns TRUE on success, or false on failure.\r
+ * @param[in] tapi_indtype the tapi indication type.\r
+ * @param[out] p_ind_type the ciss indication type.\r
+ */\r
+int _ciss_get_requested_tapi_ussd_ind_type(ciss_ussd_ind_type_t *p_ind_type, TelSsUssdIndType_t tapi_indtype);\r
+\r
+void _ciss_ui_mmi_get_service_name(ciss_service_t in_service, char *service_name);\r
+void _ciss_ui_mmi_get_flavor_name(ciss_flavor_t in_flavor, char *flavor_name);\r
+void _ciss_ui_mmi_get_bearer_name(ciss_service_t ss_type, ciss_telecomm_svc_t in_teleservice, char *teleservice_name);\r
+void _ciss_ui_mmi_get_result_status_type(ciss_service_t ss_type, ciss_status_t result_status, char *szResult);\r
+#endif /* _CISS_CONVERTER_MMI_H_ */\r
--- /dev/null
+/*
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * This file is part of <ciss>
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use it only in accordance
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability of the software,
+ * either express or implied, including but not limited to the implied warranties of merchantability,
+ * fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,
+ * modifying or distributing this software or its derivatives.
+ *
+ */
+
+#include <dlog.h>
+#ifndef CISS_LOG_TAG
+#define CISS_LOG_TAG "CISS"
+#endif
+
+#define DBG(fmt, arg...) \
+ do { \
+ LOG(LOG_INFO, CISS_LOG_TAG, "[CISS][%s:%d] "fmt"\n", __func__, __LINE__, ##arg); \
+ } while(0)
+
+#define ERR(fmt, arg...) \
+ do { \
+ LOGE(""fmt"\n", ##arg); \
+ } while(0)
+
+# define warn_if(expr, fmt, arg...) do { \
+ if(expr) { \
+ DBG("(%s) -> "fmt, #expr, ##arg); \
+ } \
+ } while (0)
+# define ret_if(expr) do { \
+ if(expr) { \
+ DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
+ return; \
+ } \
+ } while (0)
+# define retv_if(expr, val) do { \
+ if(expr) { \
+ DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
+ return (val); \
+ } \
+ } while (0)
+# define retm_if(expr, fmt, arg...) do { \
+ if(expr) { \
+ ERR(fmt, ##arg); \
+ DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
+ return; \
+ } \
+ } while (0)
+# define retvm_if(expr, val, fmt, arg...) do { \
+ if(expr) { \
+ ERR(fmt, ##arg); \
+ DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
+ return (val); \
+ } \
+ } while (0)
+
--- /dev/null
+/*\r
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved \r
+ *\r
+ * This file is part of <ciss>\r
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>\r
+ *\r
+ * PROPRIETARY/CONFIDENTIAL\r
+ *\r
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").\r
+ * You shall not disclose such Confidential Information and shall use it only in accordance\r
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.\r
+ * SAMSUNG make no representations or warranties about the suitability of the software,\r
+ * either express or implied, including but not limited to the implied warranties of merchantability,\r
+ * fitness for a particular purpose, or non-infringement.\r
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,\r
+ * modifying or distributing this software or its derivatives.\r
+ *\r
+ */\r
+\r
+#ifndef _CISS_PARSE_MMI_H_\r
+#define _CISS_PARSE_MMI_H_\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif /* __cplusplus */\r
+\r
+#include "ITapiSs.h"\r
+#include "ciss-common.h"\r
+#include <glib.h>\r
+\r
+#define ISDIGIT(X) ((X >= '0') && (X <= '9'))\r
+#define ISUSSDDIGIT(X) ((X >= '2') && (X <= '9'))\r
+#define MAX_DIALED_DIGITS 160\r
+\r
+/***************************************************************************\r
+ * Macros\r
+ **************************************************************************/\r
+/* user inputs for supplementary services */\r
+\r
+#define MAX_SIA_LEN 40\r
+#define MAX_SIB_LEN 4 /* PWD LEN */\r
+#define MAX_SIC_LEN 4 /* PWD LEN */\r
+\r
+#define NULL_SS_OPERATION 0xff\r
+\r
+/**\r
+ * This function processes the responses from telephony based on the current state\r
+ *\r
+ * @return Returns TRUE if request is successfully processed else false\r
+ * @param[in] this Pointer to the engine state\r
+ * @param[in] req_string string to be processed\r
+ */\r
+int _ciss_parse_req_string(char *req_string, ciss_mmi_context_t *mmi_ctx);\r
+\r
+#endif /* _CISS_PARSE_MMI_H_ */\r
+\r
--- /dev/null
+/*
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * This file is part of <ciss>
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use it only in accordance
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability of the software,
+ * either express or implied, including but not limited to the implied warranties of merchantability,
+ * fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,
+ * modifying or distributing this software or its derivatives.
+ *
+ */
+
+#ifndef _CISS_MMI_RESP_H_
+#define _CISS_MMI_RESP_H_
+
+#include <Elementary.h>
+#include <ITapiSs.h>
+
+Evas_Object *_ciss_create_ss_resp_view(Evas_Object *parent, TelSsInfo_t *ss_info, void *data);
+
+#endif
+
--- /dev/null
+/*\r
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved \r
+ *\r
+ * This file is part of <ciss>\r
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>\r
+ *\r
+ * PROPRIETARY/CONFIDENTIAL\r
+ *\r
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").\r
+ * You shall not disclose such Confidential Information and shall use it only in accordance\r
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.\r
+ * SAMSUNG make no representations or warranties about the suitability of the software,\r
+ * either express or implied, including but not limited to the implied warranties of merchantability,\r
+ * fitness for a particular purpose, or non-infringement.\r
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,\r
+ * modifying or distributing this software or its derivatives.\r
+ *\r
+ */\r
+\r
+#ifndef _CISS_MMI_RESPND_H_\r
+#define _CISS_MMI_RESPND_H_\r
+\r
+#include <Elementary.h>\r
+#include <ITapiSs.h>\r
+#include "ciss-ussd.h"\r
+\r
+void _ciss_create_respond_view(void *data);\r
+\r
+#endif\r
+\r
--- /dev/null
+/*
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * This file is part of <ciss>
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use it only in accordance
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability of the software,
+ * either express or implied, including but not limited to the implied warranties of merchantability,
+ * fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,
+ * modifying or distributing this software or its derivatives.
+ *
+ */
+
+#define CISS_STR_ALL_CALLS _("IDS_CST_BODY_ALL_CALLS")
+#define CISS_STR_CALL_DIVERTING _("IDS_CST_BODY_CALL_DIVERTING")
+#define CISS_STR_CALL_BARRING _("IDS_CST_BODY_CALL_BARRING")
+#define CISS_STR_CALL_WAITING _("IDS_CST_BODY_CALL_WAITING")
+#define CISS_STR_SERVICE_UNAVAILABLE _("IDS_CST_POP_SERVICE_UNAVAILABLE")
+
+#define CISS_STR_SERVICE_NOT_AUTHORISED _("IDS_CST_POP_SERVICE_NOT_AUTHORISED")
+#define CISS_STR_PASSWORD_BLOCKED _("IDS_CST_POP_PASSWORD_BLOCKED")
+#define CISS_STR_INVALID_PASSWORD _("IDS_CST_POP_INVALID_PASSWORD")
+#define CISS_STR_REJECTED_BY_NETWORK _("IDS_CST_POP_REJECTED_BY_NETWORK")
+#define CISS_STR_REQUESTING _("IDS_CST_POP_REQUESTING_ING")
+
+#define CISS_STR_ALL_ASYNCHRONOUS_DATA _("IDS_CST_POP_ALL_ASYNCHRONOUS_DATA")
+#define CISS_STR_ALL_BEARER_SERVICES _("IDS_CST_POP_ALL_BEARER_SERVICES")
+#define CISS_STR_ALL_DATA_SERVICES _("IDS_CST_POP_ALL_DATA_SERVICES")
+#define CISS_STR_ALL_PADCA_SERVICES _("IDS_CST_POP_ALL_PADCA_SERVICES")
+#define CISS_STR_ALL_PDS_SERVICES _("IDS_CST_POP_ALL_PDS_SERVICES")
+#define CISS_STR_ALL_PLMN_BEARERS _("IDS_CST_POP_ALL_PLMN_BEARERS")
+#define CISS_STR_ALL_SERVICES _("IDS_CST_POP_ALL_SERVICES")
+#define CISS_STR_ALL_SYNCHRONOUS_SERVICES _("IDS_CST_POP_ALL_SYNCHRONOUS_SERVICES")
+#define CISS_STR_ALL_TELECOM_SERVICES _("IDS_CST_POP_ALL_TELECOM_SERVICES")
+#define CISS_STR_ASYNCHRONOUS_DATA_SERVICES _("IDS_CST_POP_ASYNCHRONOUS_DATA_SERVICES")
+#define CISS_STR_FOR_ALL_TELE_SERVICES_EXCEPT_SMS _("IDS_COM_POP_FOR_ALL_TELE_SERVICES_EXCEPT_SMS")
+#define CISS_STR_FAX _("IDS_CST_BODY_FAX")
+
+#define CISS_STR_ENTER_NUMBER _("IDS_CST_BODY_ENTER_NUMBER")
+#define CISS_STR_QUIT dgettext("sys_string", "IDS_COM_SK_QUIT")
+#define CISS_STR_CALLER_ID_SHOWN _("IDS_CST_POP_CALLER_ID_SHOWN")
+#define CISS_STR_CALLER_ID_HIDDEN _("IDS_CST_POP_CALLER_ID_HIDDEN")
+#define CISS_STR_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING _("IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING")
+#define CISS_STR_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING _("IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING")
+#define CISS_STR_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS _("IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS")
+#define CISS_STR_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS _("IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS")
+#define CISS_STR_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING _("IDS_CST_POP_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING")
+#define CISS_STR_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING _("IDS_CST_POP_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING")
+#define CISS_STR_CALLER_ID_AVAILABLE _("IDS_CST_POP_CALLER_ID_AVAILABLE")
+#define CISS_STR_CALLER_ID_RESTRICTED _("IDS_CST_POP_CALLER_ID_RESTRICTED")
+#define CISS_STR_CHANGE_PASSWORD _("IDS_CST_OPT_CHANGE_PASSWORD")
+#define CISS_STR_CALL_DIVERTING_ACTIVE_C_ALWAYS _("IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS")
+#define CISS_STR_CALL_DIVERTING_ACTIVE_C_WHEN_NOREPLY _("IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_NO_ANSWER")
+#define CISS_STR_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY _("IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY")
+#define CISS_STR_CALL_DIVERTING_ACTIVE_C_UNREACHABLE _("IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_UNREACHABLE")
+
+#define CISS_STR_CONDITIONAL _("IDS_CST_HEADER_CONDITIONAL")
+#define CISS_STR_ALL_OUTGOING_CALLS_BARRED _("IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED")
+#define CISS_STR_OUTGOING_INTERNATIONAL_CALLS_BARRED _("IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED")
+#define CISS_STR_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED _("IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED")
+#define CISS_STR_ALL_INCOMING_CALLS_BARRED _("IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED")
+#define CISS_STR_INCOMING_CALLS_BARRED_WHEN_ROAMING _("IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING")
+#define CISS_STR_ALL_BARRING _("IDS_ST_POP_ALL_BARRING")
+#define CISS_STR_OUTGOING_BARRING _("IDS_ST_POP_OUTGOING_BARRING")
+#define CISS_STR_INCOMING_BARRING _("IDS_ST_POP_INCOMING_BARRING")
+
+#define CISS_STR_SUCCESS dgettext("sys_string", "IDS_COM_POP_SUCCESS")
+#define CISS_STR_REPLY dgettext("sys_string", "IDS_COM_SK_REPLY")
+#define CISS_STR_ACTIVATED dgettext("sys_string", "IDS_COM_BODY_ACTIVATED")
+#define CISS_STR_DEACTIVATED dgettext("sys_string", "IDS_COM_POP_DEACTIVATED")
+#define CISS_STR_VOICE dgettext("sys_string", "IDS_COM_BODY_VOICE")
+#define CISS_STR_VIDEO dgettext("sys_string", "IDS_COM_BODY_VIDEO")
+#define CISS_STR_SMS dgettext("sys_string", "IDS_COM_BODY_SMS")
+#define CISS_STR_NETWORK_ERROR dgettext("sys_string", "IDS_COM_POP_NETWORK_ERROR")
+#define CISS_STR_INFORMATION dgettext("sys_string", "IDS_COM_BODY_INFORMATION")
--- /dev/null
+/*\r
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved \r
+ *\r
+ * This file is part of <ciss>\r
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>\r
+ *\r
+ * PROPRIETARY/CONFIDENTIAL\r
+ *\r
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").\r
+ * You shall not disclose such Confidential Information and shall use it only in accordance\r
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.\r
+ * SAMSUNG make no representations or warranties about the suitability of the software,\r
+ * either express or implied, including but not limited to the implied warranties of merchantability,\r
+ * fitness for a particular purpose, or non-infringement.\r
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,\r
+ * modifying or distributing this software or its derivatives.\r
+ *\r
+ */\r
+\r
+#ifndef _CISS_MMI_TAPI_EVENTS_H_\r
+#define _CISS_MMI_TAPI_EVENTS_H_\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif /* __cplusplus */\r
+\r
+#include "ciss-types.h"\r
+#include "ciss-common.h"\r
+#include <ITapiSs.h>\r
+#include <TapiEvent.h>\r
+\r
+/**\r
+ * This function sends request to the TAPI\r
+ *\r
+ * @return This function returns CISS_ERR_NONE on success, or error type on failure.\r
+ * @param[in] ciss_mmi_context_t the ciss mmi context type\r
+ */\r
+\r
+int _ciss_tapi_event_setup(struct appdata *ad);\r
+\r
+void _ciss_deregister_tel_event(void);\r
+\r
+ciss_err_t _ciss_send_tapi_request(ciss_mmi_context_t *mmi_ctx);\r
+\r
+int _ciss_on_tapi_ss_event(const TelTapiEvent_t *event, void *data);\r
+int _ciss_on_tapi_ss_rel_complete_noti(const TelTapiEvent_t *event, void *data);\r
+int _ciss_on_tapi_ussd_event(const TelTapiEvent_t *event, void *data);\r
+int _ciss_on_tapi_sat_ss_event(const TelTapiEvent_t *event, void *data);\r
+int _ciss_on_tapi_sat_ussd_event(const TelTapiEvent_t *event, void *data);\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif /* __cplusplus */\r
+\r
+#endif /* _CISS_TAPI_EVENTS_H_ */\r
+\r
--- /dev/null
+/*
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * This file is part of <ciss>
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use it only in accordance
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability of the software,
+ * either express or implied, including but not limited to the implied warranties of merchantability,
+ * fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,
+ * modifying or distributing this software or its derivatives.
+ *
+ */
+
+#ifndef _CISS_ENGINE_TYPES_H_
+#define _CISS_ENGINE_TYPES_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#define MID_CISS 0x201E0012
+#define CISS_MODULE_ID 22
+#define CISS_NUMBER_LEN_MAX 40 /**< Maximum length of number */
+#define CISS_MAX_PASSWORD_LEN 4 /**< Maximum length of barring password */
+#define CISS_STR_BUFFER_MAX 70 /**< Maximum size of string buffer */
+#define CISS_TEXT_LEN_MAX 150 /**< Maximum lenght of text for application */
+#define CISS_CALL_NUMBER_LEN_MAX 80 /**< Maximum call number length */
+#define CISS_MAX_SS_RECORDS 8 /**< Maximum number of SS records */
+#define CISS_USSD_DATA_SIZE_MAX 208 /**< Maximum length of USSD data */
+#define CISS_DIVERT_NUMBER_LEN_MAX 32 /**< Maximum length of Divert to number */
+#define CISS_TAPI_NW_USSD_HANDLE 255 /**< Mapped to the OEM_INVALID_REQUEST_ID of Tapi - OemTapiCommon.h*/
+
+#ifdef CISS_SYSLOG
+#define CISS_ENG_LEVEL_DEBUG LOG_DEBUG /**< Messages that contain information normally of use only when debugging a program */
+#define CISS_ENG_LEVEL_INFO LOG_INFO /**< Informational messages.*/
+#define CISS_ENG_LEVEL_NOTICE LOG_NOTICE /**< Conditions that are not error conditions, but should possibly be handled specially.*/
+#define CISS_ENG_LEVEL_WARNING LOG_WARNING /**< Warning messages.*/
+#define CISS_ENG_LEVEL_ERR LOG_ERR /**< Errors. */
+#define CISS_ENG_LEVEL_CRIT LOG_CRIT /**< Critical conditions, e.g., hard device errors. */
+#define CISS_ENG_LEVEL_ALERT LOG_ALERT /**< A condition that should be corrected immediately, such as a corrupted system database. */
+#define CISS_ENG_LEVEL_EMERG LOG_EMERG /**< A panic condition. This is normally broadcast to all users. */
+#elif CISS_DEBUG_MESSAGE
+#define CISS_ENG_LEVEL_DEBUG DEBUG_VERBOSE
+#define CISS_ENG_LEVEL_INFO DEBUG_VERBOSE
+#define CISS_ENG_LEVEL_NOTICE DEBUG_VERBOSE
+#define CISS_ENG_LEVEL_WARNING DEBUG_EXCEPTION
+#define CISS_ENG_LEVEL_ERR DEBUG_EXCEPTION
+#define CISS_ENG_LEVEL_CRIT DEBUG_ASSERT
+#define CISS_ENG_LEVEL_ALERT DEBUG_EXCEPTION
+#define CISS_ENG_LEVEL_EMERG DEBUG_EXCEPTION
+#else
+#define CISS_ENG_LEVEL_DEBUG LOG_DEBUG /**< Messages that contain information normally of use only when debugging a program */
+#define CISS_ENG_LEVEL_INFO LOG_INFO /**< Informational messages.*/
+#define CISS_ENG_LEVEL_NOTICE LOG_NOTICE /**< Conditions that are not error conditions, but should possibly be handled specially.*/
+#define CISS_ENG_LEVEL_WARNING LOG_WARNING /**< Warning messages.*/
+#define CISS_ENG_LEVEL_ERR LOG_ERR /**< Errors. */
+#define CISS_ENG_LEVEL_CRIT LOG_CRIT /**< Critical conditions, e.g., hard device errors. */
+#define CISS_ENG_LEVEL_ALERT LOG_ALERT /**< A condition that should be corrected immediately, such as a corrupted system database. */
+#define CISS_ENG_LEVEL_EMERG LOG_EMERG /**< A panic condition. This is normally broadcast to all users. */
+#endif
+
+/* Levels re used to configure syslogd at run time. Refer man syslog.conf */
+#ifdef CISS_SYSLOG
+#define CISS_ENG_DEBUG(level, args...) \
+ syslog(LOG_USER | level, "File: %s, Func: %s, Line#: %d", __FILE__, __func__, __LINE__); \
+ syslog(LOG_USER | level, args);
+#elif CISS_DEBUG_MESSAGE
+#define CISS_ENG_DEBUG(level, args...) \
+ debug_message(MID_CISS, level, "\n[Ciss-Engine]:[%s]:[%s] Line#%d:\n", __FILE__, __func__, __LINE__); \
+ debug_message(MID_CISS, level, args);
+#else
+#define CISS_ENG_DEBUG(level, args...) \
+ fprintf(stderr, "\nFile: %s, Func: %s, Line#: %d\n", __FILE__, __func__, __LINE__); \
+ fprintf(stderr, args)
+#endif
+
+#if defined(CISS_DEBUG_MESSAGE)
+#define CISS_ASSERT(condition) \
+ if(!(condition)) \
+ debug_message(CISS_MODULE_ID, DEBUG_ASSERT, ""); \
+
+#else
+#define CISS_ASSERT(condition) assert(condition)
+
+#endif
+
+#ifndef true
+#define true 1
+#endif
+
+#ifndef false
+#define false 0
+#endif
+
+
+/**
+ * This enumeration defines the error codes returned from engine to UI
+ */
+typedef enum {
+ CISS_ERR_NONE = 0x00, /**< numberOfPW_AttemptsViolation*/
+
+ /*NETWORK ERRORS*/
+ CISS_ERR_UNKNOWN_SUBSCRIBER = 0x01, /**< unknownSubscriber "Invalid User Number" */
+ CISS_ERR_BEARER_NOT_PROVISIONED = 0x02, /**< BearerServiceNotProvisioned "Request Rejected" */
+ CISS_ERR_TELESERVICE_NOT_PROVISIONED = 0x03, /**< TeleServiceNotProvisioned */
+ CISS_ERR_CALL_BARRED = 0x04, /**< CallBarred */
+ CISS_ERR_ILLEGAL_SS_OPER = 0x05, /**< illegalSS_Operation */
+ CISS_ERR_ERR_STATUS = 0x06, /**< ss_ErrorStatus */
+ CISS_ERR_NOT_AVAIL = 0x07, /**< ss_NotAvailable "Service not available" */
+ CISS_ERR_SUBSCRIPTION_VIOLATION = 0x08, /**< ss_SubscriptionViolation */
+ CISS_ERR_INCOMPATIBILITY = 0x09, /**< ss_Incompatibility */
+ CISS_ERR_FACILITY_NOT_SUPPORT = 0x0a, /**< FacilityNotSupported */
+ CISS_ERR_SYS_FAILURE = 0x0b, /**< "SystemFailure "Please try again" */
+ CISS_ERR_DATA_MISSING = 0x0c, /**< DataMissing */
+ CISS_ERR_UNEXPECTED_DATA = 0x0d, /**< UnexpectedDataValue 0x13 */
+ CISS_ERR_MPTY_PARTICIPANTS_EXCEED = 0x0e, /**< maxNumberOfMPTY_ParticipantsExceeded */
+ CISS_ERR_RESOURCE_NOT_AVAIL = 0x0f, /**< ResourcesNotAvailable */
+ CISS_ERR_PW_REGIST_FAIL = 0x10, /**< PasswordRegistrationFailure ( ex:password mismatch ) */
+ CISS_ERR_NEGATIVE_PW_CHECK = 0x11, /**< NegativePasswordCheck */
+ CISS_ERR_PW_ATTEMPS_VIOLATION = 0x12, /**< numberOfPW_AttemptsViolation*/
+
+ /*PHONE ERRORS*/
+ CISS_ERR_NETWORK_API_FAILED = 0x13, /**< Telephony API call failed*/
+ CISS_ERR_DIVERT_TO_EMERGENCY_BLOCKED = 0x14, /**< Call diverting to an emergency number not allowed*/
+
+ /* Call barring password mismatch errors */
+ CISS_ERR_CB_PWD_TOO_SORT = 0x15, /**< Password is too short - less than 4 characters*/
+ CISS_ERR_CB_PWD_MISMATCH = 0x16, /**< Password do not match - unequal password*/
+ CISS_ERR_CB_PWD_TOO_LONG = 0x17, /**< Password is too long - greater than 4 characters*/
+
+ CISS_ERR_UNKNOWN = 0xff, /**< unknown error*/
+
+} ciss_err_t;
+
+/**
+ * This enumeration defines the request types made to the engine
+ */
+typedef enum {
+ CISS_REQUEST_SET_INITIALIZE = 0x100, /**< Initialize*/
+ CISS_REQUEST_SS_SEND_STRING = 0x101, /**< parse MMI string into SS/USSD request*/
+ CISS_REQUEST_SS_SEND_DATA = 0x102, /**< Send SS data to network*/
+ CISS_REQUEST_SAT_SEND_SS = 0x103, /**< SS request by SAT*/
+ CISS_REQUEST_SAT_SEND_USSD = 0x104, /**< USSD request by SAT*/
+ CISS_REQUEST_SS_SEND_USSD_RESP = 0x105 /**< Send USSD response to network*/
+} ciss_request_type_t;
+
+/**
+ * This enumeration defines the results of call control
+ */
+typedef enum {
+ CISS_CALL_CONTROL_ALLOWED_NO_MOD = 0x00, /**< call is allowed with no modification*/
+ CISS_CALL_CONTROL_NOT_ALLOWED = 0x01, /**< call is not allowed*/
+ CISS_CALL_CONTROL_ALLOWED_WITH_MOD = 0x02 /**< call is allowed with modification*/
+} ciss_call_control_result_t;
+
+/**
+ * This enumeration defines the response codes returned from engine to UI
+ */
+typedef enum {
+ CISS_UI_RESPONSE_NETWORK_RESPONSE = 0x00, /**< response from network*/
+ CISS_UI_RESPONSE_USSD_NW_RESPONSE = 0x01, /**< ussd network response*/
+ CISS_UI_RESPONSE_CALL_CONTROL = 0x02, /**< call control resposne*/
+ CISS_UI_RESPONSE_NETWORK_TIMEOUT = 0x03, /**< request timer expired*/
+ CISS_UI_RESPONSE_ERROR = 0x04, /**< error from network*/
+ CISS_UI_RESPONSE_SAT_REQUEST_DONE = 0x05, /**< notify UI that engine has finished a SAT request*/
+ CISS_UI_RESPONSE_SAT_REQUEST_START = 0x06, /**< notify UI that engine has started a SAT request*/
+ CISS_UI_RESPONSE_CHECK_APPLET = 0x07 /**< end app response */
+} ciss_ui_response_type_t;
+
+/**
+ * This enumeration defines the various SS services handled by the engine
+ */
+typedef enum {
+ CISS_SERVICE_DIVERTING = 0x00, /**< Call diverting/forwarding*/
+ CISS_SERVICE_BARRING = 0x01, /**< call barring*/
+ CISS_SERVICE_WAITING = 0x02, /**< call waiting*/
+ CISS_SERVICE_CHANGE_BARRING_PASSWD = 0x03, /**< change barring password*/
+ CISS_SERVICE_USSD = 0x04, /**< USSD*/
+ CISS_SERVICE_IDENTIFICATION = 0x05 /**< clip, clir, colp, colr, cnap*/
+} ciss_service_t;
+
+/**
+ * This enumeration defines the telecomm services handled by the engine
+ */
+typedef enum
+{
+ CISS_TELECOMM_SVC_NONE, /**<0 : None */
+ CISS_TELECOMM_SVC_ALL_TELE_BEARER, /**<1 : All Tele and Bearer services */
+
+ /* TELESERVICE */
+ CISS_TELECOMM_SVC_ALL_TELE, /**<2 : All Teleservices */
+ CISS_TELECOMM_SVC_VOICE, /**<3 : All Voice ( telephony ) */
+ CISS_TELECOMM_SVC_ALL_DATA_TELE, /**<4 : All Data Teleservices */
+ CISS_TELECOMM_SVC_FAX, /**<5 : All Fax Service */
+ CISS_TELECOMM_SVC_SMS, /**<6 : SMS service */
+ CISS_TELECOMM_SVC_VGCS, /**<7 : Voice Group Call Service */
+ CISS_TELECOMM_SVC_VBS, /**<8 : Voice Broadcast */
+ CISS_TELECOMM_SVC_ALL_TELE_EXPT_SMS, /**<9 : All teleservice except SMS */
+
+ /* BEARER SERVICE */
+ CISS_TELECOMM_SVC_ALL_BEARER, /**<10 : all bearer services */
+ CISS_TELECOMM_SVC_ALL_ASYNC, /**<11 : All Async services */
+ CISS_TELECOMM_SVC_ALL_SYNC, /**<12 : All sync services*/
+ CISS_TELECOMM_SVC_ALL_CS_SYNC, /**<13 : All Circuit switched sync */
+ CISS_TELECOMM_SVC_ALL_CS_ASYNC, /**<14 : All Circuit switched async */
+ CISS_TELECOMM_SVC_ALL_DEDI_PS, /**<15 : All Dedicated packet Access */
+ CISS_TELECOMM_SVC_ALL_DEDI_PAD, /**<16 : All Dedicated PAD Access */
+ CISS_TELECOMM_SVC_ALL_DATA_CDA, /**<17 : All Data CDA*/
+
+ /* PLMN SPECIFIC TELESERVICE */
+ CISS_TELECOMM_SVC_PLMN_TELE_ALL, /**<18 : PLMN specific teleservices*/
+ CISS_TELECOMM_SVC_PLMN_TELE_1, /**<19 : PLMN specific teleservice 1*/
+ CISS_TELECOMM_SVC_PLMN_TELE_2, /**<20 : PLMN specific teleservice 2*/
+ CISS_TELECOMM_SVC_PLMN_TELE_3, /**<21 : PLMN specific teleservice 3*/
+ CISS_TELECOMM_SVC_PLMN_TELE_4, /**<22 : PLMN specific teleservice 4*/
+ CISS_TELECOMM_SVC_PLMN_TELE_5, /**<23 : PLMN specific teleservice 5*/
+ CISS_TELECOMM_SVC_PLMN_TELE_6, /**<24 : PLMN specific teleservice 6*/
+ CISS_TELECOMM_SVC_PLMN_TELE_7, /**<25 : PLMN specific teleservice 7*/
+ CISS_TELECOMM_SVC_PLMN_TELE_8, /**<26 : PLMN specific teleservice 8*/
+ CISS_TELECOMM_SVC_PLMN_TELE_9, /**<27 : PLMN specific teleservice 9*/
+ CISS_TELECOMM_SVC_PLMN_TELE_A, /**<28 : PLMN specific teleservice 10*/
+ CISS_TELECOMM_SVC_PLMN_TELE_B, /**<29 : PLMN specific teleservice 11*/
+ CISS_TELECOMM_SVC_PLMN_TELE_C, /**<30 : PLMN specific teleservice 12*/
+ CISS_TELECOMM_SVC_PLMN_TELE_D, /**<31 : PLMN specific teleservice 13*/
+ CISS_TELECOMM_SVC_PLMN_TELE_E, /**<32 : PLMN specific teleservice 14*/
+ CISS_TELECOMM_SVC_PLMN_TELE_F, /**<33 : PLMN specific teleservice 15*/
+
+ /* PLMN SPECIFIC BEARER SERVICE */
+ CISS_TELECOMM_SVC_PLMN_BEAR_ALL, /**<34 : All PLMN specific bearer services*/
+ CISS_TELECOMM_SVC_PLMN_BEAR_1, /**<35 : PLMN specific bearer service 1*/
+ CISS_TELECOMM_SVC_PLMN_BEAR_2, /**<36 : PLMN specific bearer service 2*/
+ CISS_TELECOMM_SVC_PLMN_BEAR_3, /**<37 : PLMN specific bearer service 3*/
+ CISS_TELECOMM_SVC_PLMN_BEAR_4, /**<38 : PLMN specific bearer service 4*/
+ CISS_TELECOMM_SVC_PLMN_BEAR_5, /**<39 : PLMN specific bearer service 5*/
+ CISS_TELECOMM_SVC_PLMN_BEAR_6, /**<40 : PLMN specific bearer service 6*/
+ CISS_TELECOMM_SVC_PLMN_BEAR_7, /**<41 : PLMN specific bearer service 7*/
+ CISS_TELECOMM_SVC_PLMN_BEAR_8, /**<42 : PLMN specific bearer service 8*/
+ CISS_TELECOMM_SVC_PLMN_BEAR_9, /**<43 : PLMN specific bearer service 9*/
+ CISS_TELECOMM_SVC_PLMN_BEAR_A, /**<44 : PLMN specific bearer service 10*/
+ CISS_TELECOMM_SVC_PLMN_BEAR_B, /**<45 : PLMN specific bearer service 11*/
+ CISS_TELECOMM_SVC_PLMN_BEAR_C, /**<46 : PLMN specific bearer service 12*/
+ CISS_TELECOMM_SVC_PLMN_BEAR_D, /**<47 : PLMN specific bearer service 13*/
+ CISS_TELECOMM_SVC_PLMN_BEAR_E, /**<48 : PLMN specific bearer service 14*/
+ CISS_TELECOMM_SVC_PLMN_BEAR_F, /**<49 : PLMN specific bearer service 15*/
+
+ /* CPHS - AUXILIARY SERVICE */
+ CISS_TELECOMM_SVC_AUX_VOICE, /**<50 : All Auxiliary Voice ( Auxiliary telephony ) */
+
+ CISS_TELECOMM_SVC_ALL_GPRS_BEARER, /**<51 : All GPRS bearer services */
+ CISS_TELECOMM_SVC_MAX /**<52 : Max count */
+} ciss_telecomm_svc_t;
+
+/**
+ * This enumeration defines the various flavors of SS handled by the engine
+ */
+typedef enum {
+/* Divert Flavor */
+ CISS_FLAVOR_NONE = 0x00, /**< None*/
+ CISS_FLAVOR_DIVERT_START = 0x01, /**< Divert start*/
+ CISS_FLAVOR_DIVERT_UNCONDITIONAL = 0x02, /**< Divert unconditional*/
+ CISS_FLAVOR_DIVERT_BUSY = 0x03, /**< Divert if busy*/
+ CISS_FLAVOR_DIVERT_NOREPLY = 0x04, /**< Divert if no reply*/
+ CISS_FLAVOR_DIVERT_UNREACHABLE = 0x05, /**< Divert if unreachable*/
+ CISS_FLAVOR_DIVERT_CANCELALL = 0x06, /**< Cancel all diverting*/
+ CISS_FLAVOR_BARRING_CANCELALL = 0x07, /**< Cancel all barring*/
+
+ CISS_FLAVOR_DIVERT_ALL_FLAVORS = 0x08, /**< Deregistration( NETWORK_DIVERT_UNIVERSAL) */
+ CISS_FLAVOR_DIVERT_ALL_CONDITIONAL_FLAVORS = 0x09, /**< Divert all conditional */
+
+/* Barring Flavor */
+ CISS_FLAVOR_BARRING_START = 0x10, /**< Barring start*/
+ CISS_FLAVOR_BARRING_ALL_OUTGOING_CALLS = 0x11, /**< bar all outgoing calls*/
+ CISS_FLAVOR_BARRING_ALL_OUTGOING_INTERNATIONAL = 0x12, /**< bar all outgoing international calls*/
+ CISS_FLAVOR_BARRING_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME = 0x13, /**< bar all outgoing international calls except those to home country*/
+
+ CISS_FLAVOR_BARRING_ALL_INCOMING_CALLS = 0x14, /**< bar all incoming calls*/
+ CISS_FLAVOR_BARRING_INCOMING_CALLS_WHEN_ROAMING = 0x15, /**< bar all incoming calls when roaming*/
+ CISS_FLAVOR_BARRING_ALL_FLAVORS = 0x16, /**< includes all other flavors. Used for Cancel All */
+ CISS_FLAVOR_BARRING_OUTGOING = 0x17, /**< bar all outgoing flavors*/
+ CISS_FLAVOR_BARRING_INCOMING = 0x18, /**< bar all incoming flavors*/
+ CISS_FLAVOR_BARRING_END = 0x19, /**< Barring end*/
+
+ CISS_FLAVOR_WAITING = 0x20, /**< added for auto-check feature enable/disable*/
+ CISS_FLAVOR_MAX /**< max*/
+
+} ciss_flavor_t;
+
+/**
+ * This enumeration defines the various actions on a SS service
+ */
+typedef enum {
+ CISS_ACTION_NONE = -1, /**< None*/
+ CISS_ACTION_CHECK_STATUS = 0x00, /**< check status*/
+ CISS_ACTION_ACTIVATE = 0x01, /**< activate*/
+ CISS_ACTION_DEACTIVATE = 0x02, /**< deactivate*/
+ CISS_ACTION_MAX_NUM = 0xff /**< max*/
+} ciss_action_type_t;
+
+/**
+ * This enumeration defines whther the SS operation was a success or failure
+ */
+typedef enum {
+ CISS_RESP_SUCCESS = 0x00, /**< Success*/
+ CISS_RESP_FAIL = 0x01 /**< Failure*/
+} ciss_response_status_t;
+
+/**
+ * This enumeration defines the status of the SS
+ */
+typedef enum {
+ CISS_STATUS_ACTIVE = 0x00, /**< Active*/
+ CISS_STATUS_REGISTERED = 0x01, /**< Registered*/
+ CISS_STATUS_PROVISIONED = 0x02, /**< Provisioned*/
+ CISS_STATUS_QUIESCENT = 0x03, /**< Quiescent*/
+ CISS_STATUS_NOTHING = 0x04 /**< Nothing*/
+} ciss_status_t;
+
+/**
+ * This enumeration defines the subscription type used by the engine to subscribe to notis
+ */
+typedef enum {
+ CISS_SUBSCRIPTION_TYPE_CALL_SETTINGS = 0x00, /**< Call settings.. minimal subscription*/
+ CISS_SUBSCRIPTION_TYPE_MMI = 0x01, /**< For MMI string.. all events subscribed*/
+ CISS_SUBSCRIPTION_TYPE_APP = 0x02 /**< CIss app.. all events subscribed*/
+} ciss_subscription_type_t;
+
+/**
+ * This enumeration defines the ussd indication type
+ */
+typedef enum {
+ CISS_USSD_NOTIFY = 0x00, /**< notify : to display ussd data to user. */
+ CISS_USSD_IND_NO_ACTION_REQUIRE = 0x01, /**<no further user action required */
+ CISS_USSD_IND_ACTION_REQUIRE = 0x02, /**<further user action required*/
+ CISS_USSD_TERMINATED_BY_NET = 0x03, /**< USSD terminated by network */
+ CISS_USSD_OTHER_CLIENT = 0x04, /**< other local client has responded */
+ CISS_USSD_NOT_SUPPORT = 0x05, /**< operation not supported */
+ CISS_USSD_TIME_OUT = 0x06 /**<network time out */
+} ciss_ussd_ind_type_t;
+
+/**
+ * This enumeration defines the ussd response type
+ */
+typedef enum {
+ CISS_USSD_RES_UNKNOWN_ALPHABET = 0x00, /**< unlnown alphabet */
+ CISS_USSD_RES_DISPL_BUSY = 0x01, /**< display is busy */
+ CISS_USSD_RES_OK = 0x02, /**< response */
+ CISS_USSD_RES_NONE = 0x03 /**< no response use for user release*/
+} ciss_ussd_response_type_t;
+
+/**
+* These are the four types of identity presentation / restriction services.
+*/
+typedef enum {
+ CISS_CC_VOICE_IDENTIFICATION_NONE = 0x00, /**< none */
+ CISS_CALLING_LINE_IDENTITY_PRESENTATION = 0x01, /**< identify the party calling this phone */
+ CISS_CALLING_LINE_IDENTITY_RESTRICTION = 0x02, /**< hide the identity of this phone when calling others */
+ CISS_CONNECTED_LINE_IDENTITY_PRESENTATION = 0x03, /**< identify the party to whom the calling party (this phone) is connected */
+ CISS_CONNECTED_LINE_IDENTITY_RESTRICTION = 0x04, /**< restrict yourself from being identified by incoming calls, such as forwarded calls */
+ CISS_CALLED_LINE_IDENTITY_PRESENTATION = 0x05, /**< same as colr */
+ CISS_CALLING_NAME_PRESENTATION = 0x06 /**< show the name of the calling party to the connected one */
+} ciss_cc_voice_identification_type_t;
+
+#if 0
+typedef struct {
+ int request_by;
+ int last_ind_type;
+ int sat_command_id;
+} ciss_ussd_engine_info_t;
+#endif
+
+/**
+* The ussd data recieved from the network
+*/
+typedef struct {
+ ciss_ussd_ind_type_t ind_type; /**< the ussd indication type */
+ unsigned char dcs; /**< the data coding scheme */
+ int ussd_string_length; /**< Length of String */
+ char ussd_string[CISS_USSD_DATA_SIZE_MAX]; /**< The USSD data string to be displayed to the user */
+ int request_by; /**< The Engine information */
+ int sat_command_id; /**< The Engine information */
+} ciss_ussd_record_t;
+
+/**
+* The ussd repsonse data sent to the network
+*/
+typedef struct {
+ ciss_ussd_response_type_t resp_type; /**< the ussd repsonse type */
+ int length; /**< Length of String */
+ char string[CISS_USSD_DATA_SIZE_MAX]; /**< The USSD data string to be sent to network */
+ int request_by; /**< The Engine information */
+ int sat_command_id; /**< The Engine information */
+ int last_ussd_ind; /**< The Engine information */
+} ciss_ussd_response_record_t;
+
+/**
+* ss request data to be sent to network.
+*/
+typedef struct {
+ ciss_service_t service; /**< barring, forwarding, waiting, etc */
+ ciss_telecomm_svc_t telecommSvc; /**< telecomm service */
+ ciss_flavor_t flavor; /**< the flavor of the SS used in service*/
+ ciss_action_type_t action; /**< the action to be performed on the SS */
+ int nDivertWaitingTime; /**< the no reply timer */
+ char szDivertNumber[CISS_NUMBER_LEN_MAX + 1]; /**< number to be diverted to */
+ char szBarringPasswd[CISS_MAX_PASSWORD_LEN + 1]; /**< the old barring pwd */
+ char szBarringNewPasswd[CISS_MAX_PASSWORD_LEN + 1]; /**< the new barring pwd */
+ char szBarringCnfPasswd[CISS_MAX_PASSWORD_LEN + 1]; /**< the cnf barring pwd */
+} ciss_req_data_t;
+
+/**
+* SS Result String type
+*/
+typedef struct {
+ int nRecordNum; /**< number of SS records received */
+ ciss_service_t szSsType; /**< barring, forwarding, waiting, etc */
+ ciss_flavor_t szFlavor; /**< the flavor of the SS used in service */
+ ciss_cc_voice_identification_type_t cli_type; /**< the cli type if service is identification */
+ ciss_telecomm_svc_t szBearer[CISS_MAX_SS_RECORDS]; /**< telecomm service */
+ ciss_status_t szResult[CISS_MAX_SS_RECORDS]; /**< status of the SS */
+ int nDivertWaitingTime[CISS_MAX_SS_RECORDS]; /**< the no reply timer */
+ char szDivertNumber[CISS_MAX_SS_RECORDS][CISS_NUMBER_LEN_MAX + 1]; /**< number to be diverted to */
+} ciss_result_t;
+
+/**
+* The call control result from SAT to UI
+*/
+typedef struct {
+ char cc_data[CISS_TEXT_LEN_MAX+1];
+ ciss_call_control_result_t cc_result;
+} ciss_call_control_info_t;
+
+typedef enum {
+ CISS_ENGINE_INIT_BY_SETTINGS = 0x00, /**< Call settings.. minimal subscription*/
+ CISS_ENGINE_INIT_BY_MMI = 0x01, /**< For MMI string.. all events subscribed*/
+ CISS_ENGINE_INIT_BY_APP = 0x02, /**< CIss app.. all events subscribed*/
+ CISS_ENGINE_NOT_INIT = 0x03
+} ciss_engine_init_type;
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* _CISS_EH_H_ */
+
--- /dev/null
+/*
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * This file is part of <ciss>
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use it only in accordance
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability of the software,
+ * either express or implied, including but not limited to the implied warranties of merchantability,
+ * fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,
+ * modifying or distributing this software or its derivatives.
+ *
+ */
+
+#ifndef _CISS_MMI_USSD_H_
+#define _CISS_MMI_USSD_H_
+
+#include <Elementary.h>
+#include <ITapiSs.h>
+
+Evas_Object *_ciss_create_ussd_view(Evas_Object *parent, TelSsUssdMsgIndInfo_t *ussd_info, void *data);
+void _ciss_ussd_quit_cb(void *data, Evas_Object *obj, void *event_info);
+#endif
+
--- /dev/null
+/*\r
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved \r
+ *\r
+ * This file is part of <ciss>\r
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>\r
+ *\r
+ * PROPRIETARY/CONFIDENTIAL\r
+ *\r
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").\r
+ * You shall not disclose such Confidential Information and shall use it only in accordance\r
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.\r
+ * SAMSUNG make no representations or warranties about the suitability of the software,\r
+ * either express or implied, including but not limited to the implied warranties of merchantability,\r
+ * fitness for a particular purpose, or non-infringement.\r
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,\r
+ * modifying or distributing this software or its derivatives.\r
+ *\r
+ */\r
+\r
+#ifndef _CISS_UTIL_H_\r
+#define _CISS_UTIL_H_\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif /* __cplusplus */\r
+\r
+/*\r
+ * Functions of safe copy of string by checking the destination buffer size\r
+ */\r
+char *_ciss_strcpy(char *pBuffer, int nBufCount, const char *pszString);\r
+\r
+/*\r
+ * Functions for swapping the strings\r
+ */\r
+void _ciss_util_swap(char *str1, char *str2);\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif /* __cplusplus */\r
+\r
+#endif /* _CISS_UTIL_H_ */\r
+\r
--- /dev/null
+/*
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * This file is part of <ciss>
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use it only in accordance
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability of the software,
+ * either express or implied, including but not limited to the implied warranties of merchantability,
+ * fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,
+ * modifying or distributing this software or its derivatives.
+ *
+ */
+
+#ifndef _CISS_MMI_VIEW_UTILS_H_
+#define _CISS_MMI_VIEW_UTILS_H_
+
+#include <Elementary.h>
+#include <vconf.h>
+#include "ciss-types.h"
+
+#define SK_PORTRAIT_W (480)
+#define SK_PORTRAIT_H (78)
+#define SK_PORTRAIT_X (0)
+#define SK_PORTRAIT_Y (722)
+
+#define TB_PORTRAIT_W (480)
+#define TB_PORTRAIT_H (100)
+#define TB_PORTRAIT_X (0)
+#define TB_PORTRAIT_Y (0)
+
+typedef enum {
+ OK_ONLY_RIGHT,
+ BACK_ONLY,
+ CANCEL_REPLY,
+ BACK_REPLY,
+ BACK_MORE,
+ HIDE_BACK
+} ciss_softkey_t;
+
+enum {
+ CISS_ICON_TYPE_NONE,
+ CISS_ICON_TYPE_ADD,
+ CISS_ICON_TYPE_EDIT,
+ CISS_ICON_TYPE_DONE,
+ CISS_ICON_TYPE_CANCEL,
+ CISS_ICON_TYPE_OTHERS,
+};
+
+Evas_Object *_ciss_create_noti_popup(Evas_Object *parent,
+ char *strtitle, char *strmsg, double t_timeout,void *data);
+Evas_Object *_ciss_create_error_popup(Evas_Object *parent,
+ ciss_err_t ciss_error, double t_timeout,void *data);
+Evas_Object *_ciss_create_popup(Evas_Object *parent, char *msg);
+Evas_Object *_ciss_create_win(const char *name);
+Evas_Object *_ciss_create_layout_main( Evas_Object* parent);
+Evas_Object *_ciss_create_bg(Evas_Object *parent);
+Evas_Object *_ciss_create_navi_control_bar(Evas_Object *parent,
+ char *label1, Evas_Smart_Cb cb1,
+ char *label2, Evas_Smart_Cb cb2,
+ void *data, Elm_Object_Item *navi_it,
+ Elm_Object_Item ** c_item);
+Evas_Object *_cst_create_title_btn(Evas_Object *parent,
+ const char *text, Evas_Smart_Cb func, void *data);
+void _ciss_remove_naviframe(Evas_Object *nf);
+
+/*Callback Functions */
+Eina_Bool _ciss_on_end_key_down(void *data, int type, void *event);
+Evas_Object * _ciss_create_result_genlist(const char *result_str, int str_len, Evas_Object *nf, void *data);
+void _ciss_geinlist_item_class_new(void *data);
+void _ciss_geinlist_item_class_free(void *data);
+
+#endif
+
--- /dev/null
+Name=ciss
+Type=Application
+Exec=${PREFIX}/bin/ciss
+Icon=
+Network={True/False}
+Comment=
+MimeType=
+X-Tizen-TaskManage=False
+X-Tizen-Multiple=False
+X-Tizen-Removable=False
+Version=0.4.6
+NoDisplay=True
--- /dev/null
+Name: org.tizen.ciss
+Summary: CISS-MMI application
+Version: 0.4.45
+Release: 1
+Group: devel
+License: Samsung Proprietary License
+Source0: %{name}-%{version}.tar.gz
+BuildRequires: pkgconfig(appcore-efl)
+BuildRequires: pkgconfig(elementary)
+BuildRequires: pkgconfig(UI-idlecapture)
+BuildRequires: pkgconfig(tapi)
+BuildRequires: pkgconfig(utilX)
+BuildRequires: pkgconfig(bundle)
+BuildRequires: pkgconfig(aul)
+BuildRequires: pkgconfig(dlog)
+
+BuildRequires: cmake
+BuildRequires: gettext-tools
+BuildRequires: edje-tools
+
+%description
+CISS-MMI application.
+
+%prep
+%setup -q
+
+%build
+
+%define PREFIX "/opt/apps/org.tizen.ciss"
+%define RESDIR "/opt/apps/org.tizen.ciss/res"
+%define DATADIR "/opt/apps/org.tizen.ciss/data"
+
+cmake . -DCMAKE_INSTALL_PREFIX=%{PREFIX}
+make %{?jobs:-j%jobs}
+
+%install
+%make_install
+
+%find_lang org.tizen.ciss
+
+%post
+chown -R 5000:5000 /opt/apps/org.tizen.ciss/data
+
+%files -f org.tizen.ciss.lang
+/opt/apps/org.tizen.ciss/bin/*
+#/opt/apps/org.tizen.ciss/res/images/*
+/opt/apps/org.tizen.ciss/res/edje/ciss-mmi.edj
+/opt/apps/org.tizen.ciss/data
+/opt/share/applications/*
+
--- /dev/null
+# for i18n
+
+SET(POFILES de_DE.po el_GR.po en.po es_ES.po fr_FR.po it_IT.po ja_JP.po ko_KR.po nl_NL.po pt_PT.po ru_RU.po tr_TR.po zh_CN.po zh_HK.po zh_TW.po)
+
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+ SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+ MESSAGE("PO: ${pofile}")
+ GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+ GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+ SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${moFile}
+ COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+ DEPENDS ${absPofile}
+ )
+ INSTALL(FILES ${moFile}
+ DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+ SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+MESSAGE(".mo files: ${moFiles}")
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
--- /dev/null
+# List of source files containing translatable strings.
+ciss-0.c
+answeringmode.c
+autoreject.c
+main.c
+common_callback.c
+cissUG-efl.c
+autoreject_del.c
+calldiverting-dialog.c
+allcalls.c
+callbarring.c
+videocall.c
+ciss_tel_request.c
+ciss_helptext.c
+prefixdialing_delete.c
+callstatustone.c
+ciss_common_draw_widget.c
+ime-view.c
+stack.c
+rejectcall_message.c
+rejectcall_message_del.c
+voicecall.c
+view.c
+answeringmode_automatic.c
+callbarring-dialog.c
+db.c
+alloutgoingcalls.c
+showmynumber.c
+calldiverting.c
+prefixdialing.c
--- /dev/null
+msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED"
+msgstr "Alle eingehenden Anrufe gesperrt"
+
+msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED"
+msgstr "Alle ausgehenden Anrufe gesperrt"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS"
+msgstr "Umleitung aktiv: Immer"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_NO_ANSWER"
+msgstr "Umleitung aktiv: Immer"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_UNREACHABLE"
+msgstr "Umleitung aktiv: Nicht erreichbar"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY"
+msgstr "Umleitung aktiv: Bei besetzt"
+
+msgid "IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING"
+msgstr "Eingehende Anrufe bei Roaming gesperrt"
+
+msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED"
+msgstr "Ausgehende internationale Anrufe außer Daheim gesperrt"
+
+msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED"
+msgstr "Ausgehende internationale Anrufe gesperrt"
+
+msgid "IDS_COM_POP_FOR_ALL_TELE_SERVICES_EXCEPT_SMS"
+msgstr "für alle Teledienste außer SMS"
+
+msgid "IDS_CST_BODY_ALL_CALLS"
+msgstr "Alle Anrufe"
+
+msgid "IDS_CST_BODY_CALL_BARRING"
+msgstr "Anrufsperre"
+
+msgid "IDS_CST_BODY_CALL_DIVERTING"
+msgstr "Anrufumleitung"
+
+msgid "IDS_CST_BODY_CALL_WAITING"
+msgstr "Anklopfen"
+
+msgid "IDS_CST_BODY_ENTER_NUMBER"
+msgstr "Nummer eingeben"
+
+msgid "IDS_CST_BODY_FAX"
+msgstr "Fax"
+
+msgid "IDS_CST_HEADER_CONDITIONAL"
+msgstr "Bedingt"
+
+msgid "IDS_CST_POP_ALL_ASYNCHRONOUS_DATA"
+msgstr "Asynchrone Daten hinzufügen"
+
+msgid "IDS_CST_POP_ALL_BEARER_SERVICES"
+msgstr "Alle Übertragungsdienste"
+
+msgid "IDS_CST_POP_ALL_DATA_SERVICES"
+msgstr "Alle Datendienste"
+
+msgid "IDS_CST_POP_ALL_PADCA_SERVICES"
+msgstr "Alle PADCA-Dienste"
+
+msgid "IDS_CST_POP_ALL_PDS_SERVICES"
+msgstr "Alle PDS-Dienste"
+
+msgid "IDS_CST_POP_ALL_PLMN_BEARERS"
+msgstr "Alle PLMN-Übertragungstypen"
+
+msgid "IDS_CST_POP_ALL_SERVICES"
+msgstr "Alle Dienste"
+
+msgid "IDS_CST_POP_ALL_SYNCHRONOUS_SERVICES"
+msgstr "Alle synchronen Dienste"
+
+msgid "IDS_CST_POP_ALL_TELECOM_SERVICES"
+msgstr "Alle Telekom-Dienste"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING"
+msgstr "Antwortnummer wird bei Anruf nicht angezeigt"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING"
+msgstr "Antwortnummer wird bei Anruf angezeigt"
+
+msgid "IDS_CST_POP_ASYNCHRONOUS_DATA_SERVICES"
+msgstr "Asynchrone Datendienste"
+
+msgid "IDS_CST_POP_CALLER_ID_AVAILABLE"
+msgstr "Anrufer-ID verfügbar"
+
+msgid "IDS_CST_POP_CALLER_ID_HIDDEN"
+msgstr "Anrufer-ID verborgen"
+
+msgid "IDS_CST_POP_CALLER_ID_RESTRICTED"
+msgstr "Anruferkennung beschränkt"
+
+msgid "IDS_CST_POP_CALLER_ID_SHOWN"
+msgstr "Anruferkennung wird angezeigt"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS"
+msgstr "Eigene Rufnummer wird nicht gesendet, wenn Anrufe beantwortet werden."
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING"
+msgstr "Eigene Rufnummer wird nicht gesendet, wenn angerufen wird."
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS"
+msgstr "Meine Anrufer-ID wird beim Annehmen von Anrufen gesendet"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING"
+msgstr "Meine Anrufer-ID wird beim Anrufen gesendet"
+
+msgid "IDS_CST_POP_PASSWORD_BLOCKED"
+msgstr "Passwort gesperrt"
+
+msgid "IDS_CST_POP_REJECTED_BY_NETWORK"
+msgstr "Vom Netz abgewiesen"
+
+msgid "IDS_CST_POP_REQUESTING_ING"
+msgstr "Anforderung läuft..."
+
+msgid "IDS_CST_POP_SERVICE_NOT_AUTHORISED"
+msgstr "Dienst nicht autorisiert"
+
+msgid "IDS_ST_POP_ALL_BARRING"
+msgstr "Alle sperren"
+
+msgid "IDS_ST_POP_INCOMING_BARRING"
+msgstr "Sperre eingehende Anr."
+
+msgid "IDS_ST_POP_OUTGOING_BARRING"
+msgstr "Sperre ausgehende Anr."
+
+msgid "IDS_CST_POP_SERVICE_UNAVAILABLE"
+msgstr "Service nicht verfügbar"
+
+msgid "IDS_CST_POP_INVALID_PASSWORD"
+msgstr "Ungültiges Kennwort"
+
+msgid "IDS_CST_OPT_CHANGE_PASSWORD"
+msgstr "Passwort ändern"
+
--- /dev/null
+msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED"
+msgstr "Φραγή όλων των εισερχόμενων κλήσεων"
+
+msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED"
+msgstr "Φραγή όλων των εξερχόμενων κλήσεων"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS"
+msgstr "Ενεργή Προώθηση Κλήσεων: Πάντα"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_NO_ANSWER"
+msgstr "Προώθηση κλήσεων ενεργή: Εάν δεν απαντά"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_UNREACHABLE"
+msgstr "Προώθηση κλήσεων ενεργή: Aδύνατη πρόσβαση"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY"
+msgstr "Προώθηση κλήσεων ενεργή: Σε κατειλημμένη γραμμή"
+
+msgid "IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING"
+msgstr "Φραγή εισερχομένων σε περιαγωγή"
+
+msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED"
+msgstr "Φραγή εξερχομένων διεθνών εκτός χώρας επιλογής"
+
+msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED"
+msgstr "Φραγή όλων των\nεξερχόμενων διεθνών κλήσεων"
+
+msgid "IDS_COM_POP_FOR_ALL_TELE_SERVICES_EXCEPT_SMS"
+msgstr "για όλες τις Τηλε-υπηρεσίες εκτός των SMS"
+
+msgid "IDS_CST_BODY_ALL_CALLS"
+msgstr "Όλες οι κλήσεις"
+
+msgid "IDS_CST_BODY_CALL_BARRING"
+msgstr "Φραγή κλήσεων"
+
+msgid "IDS_CST_BODY_CALL_DIVERTING"
+msgstr "Εκτροπή κλήσεων"
+
+msgid "IDS_CST_BODY_CALL_WAITING"
+msgstr "Αναμονή κλήσεων"
+
+msgid "IDS_CST_BODY_ENTER_NUMBER"
+msgstr "Εισαγωγή αριθμού"
+
+msgid "IDS_CST_BODY_FAX"
+msgstr "Φαξ"
+
+msgid "IDS_CST_HEADER_CONDITIONAL"
+msgstr "Υπό όρους"
+
+msgid "IDS_CST_POP_ALL_ASYNCHRONOUS_DATA"
+msgstr "Όλα τα μη συγχρονισμένα δεδομένα"
+
+msgid "IDS_CST_POP_ALL_BEARER_SERVICES"
+msgstr "Όλες οι υπηρεσίες φορέα"
+
+msgid "IDS_CST_POP_ALL_DATA_SERVICES"
+msgstr "Όλες οι υπηρεσίες δεδομένων"
+
+msgid "IDS_CST_POP_ALL_PADCA_SERVICES"
+msgstr "Όλες οι υπηρεσίες PADCA"
+
+msgid "IDS_CST_POP_ALL_PDS_SERVICES"
+msgstr "Όλες οι υπηρεσίες PDS"
+
+msgid "IDS_CST_POP_ALL_PLMN_BEARERS"
+msgstr "Όλοι οι φορείς PLMN"
+
+msgid "IDS_CST_POP_ALL_SERVICES"
+msgstr "Όλες οι υπηρεσίες"
+
+msgid "IDS_CST_POP_ALL_SYNCHRONOUS_SERVICES"
+msgstr "Όλες οι συγχρονισμένες υπηρεσίες"
+
+msgid "IDS_CST_POP_ALL_TELECOM_SERVICES"
+msgstr "Όλες οι υπηρεσίες τηλεπικ/νίας"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING"
+msgstr "Ο αριθμός απάντησης δεν εμφανίζεται κατά την κλήση"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING"
+msgstr "Ο αριθμός απάντησης εμφανίζεται κατά την κλήση"
+
+msgid "IDS_CST_POP_ASYNCHRONOUS_DATA_SERVICES"
+msgstr "Υπηρεσίες μη συγχρονισμένων δεδομένων"
+
+msgid "IDS_CST_POP_CALLER_ID_AVAILABLE"
+msgstr "Διαθέσιμη ταυτότητα καλούντος"
+
+msgid "IDS_CST_POP_CALLER_ID_HIDDEN"
+msgstr "Απόκρυψη ταυτότητας καλούντος"
+
+msgid "IDS_CST_POP_CALLER_ID_RESTRICTED"
+msgstr "Περιορισμένη ταυτότητα καλούντος"
+
+msgid "IDS_CST_POP_CALLER_ID_SHOWN"
+msgstr "Εμφάνιση ταυτότητας καλούντος"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS"
+msgstr "Το δικό μου αναγνωριστικό καλούντος δεν αποστέλλεται όταν απαντώ σε μια κλήση"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING"
+msgstr "Το δικό μου αναγνωριστικό καλούντος δεν αποστέλλεται όταν πραγματοποιώ κλήση"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS"
+msgstr "Το δικό μου αναγνωριστικό καλούντα αποστέλλεται όταν απαντώ σε μια κλήση"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING"
+msgstr "Το δικό μου αναγνωριστικό καλούντα αποστέλλεται όταν πραγματοποιώ κλήση"
+
+msgid "IDS_CST_POP_PASSWORD_BLOCKED"
+msgstr "Ο κωδικός πρόσβασης μπλόκαρε"
+
+msgid "IDS_CST_POP_REJECTED_BY_NETWORK"
+msgstr "Απορρίφθηκε από το δίκτυο"
+
+msgid "IDS_CST_POP_REQUESTING_ING"
+msgstr "Αίτηση..."
+
+msgid "IDS_CST_POP_SERVICE_NOT_AUTHORISED"
+msgstr "Υπηρεσία δεν επιτρέπεται"
+
+msgid "IDS_ST_POP_ALL_BARRING"
+msgstr "Φραγή όλων"
+
+msgid "IDS_ST_POP_INCOMING_BARRING"
+msgstr "Φραγή εισερχόμενων"
+
+msgid "IDS_ST_POP_OUTGOING_BARRING"
+msgstr "Φραγή εξερχόμενων"
+
+msgid "IDS_CST_POP_SERVICE_UNAVAILABLE"
+msgstr "Μη διαθέσιμη λειτουργία"
+
+msgid "IDS_CST_POP_INVALID_PASSWORD"
+msgstr "Μη έγκυρος κωδικός"
+
+msgid "IDS_CST_OPT_CHANGE_PASSWORD"
+msgstr "Aλλαγή κωδικού"
+
--- /dev/null
+msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED"
+msgstr "All incoming calls barred"
+
+msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED"
+msgstr "All outgoing calls barred"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS"
+msgstr "Divert calls: Always"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_NO_ANSWER"
+msgstr "Divert calls: No answer"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_UNREACHABLE"
+msgstr "Divert calls: Unreachable"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY"
+msgstr "Divert calls: When busy"
+
+msgid "IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING"
+msgstr "Incoming calls barred when roaming"
+
+msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED"
+msgstr "Outgoing international calls except home barred"
+
+msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED"
+msgstr "Outgoing international calls barred"
+
+msgid "IDS_COM_POP_FOR_ALL_TELE_SERVICES_EXCEPT_SMS"
+msgstr "for All Tele services except SMS"
+
+msgid "IDS_CST_BODY_ALL_CALLS"
+msgstr "All calls"
+
+msgid "IDS_CST_BODY_CALL_BARRING"
+msgstr "Call barring"
+
+msgid "IDS_CST_BODY_CALL_DIVERTING"
+msgstr "Call diverting"
+
+msgid "IDS_CST_BODY_CALL_WAITING"
+msgstr "Call waiting"
+
+msgid "IDS_CST_BODY_ENTER_NUMBER"
+msgstr "Enter number"
+
+msgid "IDS_CST_BODY_FAX"
+msgstr "Fax"
+
+msgid "IDS_CST_HEADER_CONDITIONAL"
+msgstr "Conditional"
+
+msgid "IDS_CST_POP_ALL_ASYNCHRONOUS_DATA"
+msgstr "All asynchronous data"
+
+msgid "IDS_CST_POP_ALL_BEARER_SERVICES"
+msgstr "All bearer services"
+
+msgid "IDS_CST_POP_ALL_DATA_SERVICES"
+msgstr "All data services"
+
+msgid "IDS_CST_POP_ALL_PADCA_SERVICES"
+msgstr "All PADCA services"
+
+msgid "IDS_CST_POP_ALL_PDS_SERVICES"
+msgstr "All PDS services"
+
+msgid "IDS_CST_POP_ALL_PLMN_BEARERS"
+msgstr "All PLMN bearers"
+
+msgid "IDS_CST_POP_ALL_SERVICES"
+msgstr "All services"
+
+msgid "IDS_CST_POP_ALL_SYNCHRONOUS_SERVICES"
+msgstr "All synchronous services"
+
+msgid "IDS_CST_POP_ALL_TELECOM_SERVICES"
+msgstr "All telecom services"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING"
+msgstr "Answering number is not displayed when calling"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING"
+msgstr "Answering number is displayed when calling"
+
+msgid "IDS_CST_POP_ASYNCHRONOUS_DATA_SERVICES"
+msgstr "Asynchronous data services"
+
+msgid "IDS_CST_POP_CALLER_ID_AVAILABLE"
+msgstr "Caller ID available"
+
+msgid "IDS_CST_POP_CALLER_ID_HIDDEN"
+msgstr "Caller ID hidden"
+
+msgid "IDS_CST_POP_CALLER_ID_RESTRICTED"
+msgstr "Caller ID restricted"
+
+msgid "IDS_CST_POP_CALLER_ID_SHOWN"
+msgstr "Caller ID shown"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS"
+msgstr "My caller ID is not sent when answering calls"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING"
+msgstr "My caller ID is not sent when calling"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS"
+msgstr "My caller ID will be sent when answering calls"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING"
+msgstr "My caller ID will be sent when calling"
+
+msgid "IDS_CST_POP_PASSWORD_BLOCKED"
+msgstr "Password blocked"
+
+msgid "IDS_CST_POP_REJECTED_BY_NETWORK"
+msgstr "Rejected by network"
+
+msgid "IDS_CST_POP_REQUESTING_ING"
+msgstr "Requesting..."
+
+msgid "IDS_CST_POP_SERVICE_NOT_AUTHORISED"
+msgstr "Service not authorised"
+
+msgid "IDS_ST_POP_ALL_BARRING"
+msgstr "All barring"
+
+msgid "IDS_ST_POP_INCOMING_BARRING"
+msgstr "Incoming barring"
+
+msgid "IDS_ST_POP_OUTGOING_BARRING"
+msgstr "Outgoing barring"
+
+msgid "IDS_CST_POP_SERVICE_UNAVAILABLE"
+msgstr "Service not available"
+
+msgid "IDS_CST_POP_INVALID_PASSWORD"
+msgstr "Invalid password"
+
+msgid "IDS_CST_OPT_CHANGE_PASSWORD"
+msgstr "Change password"
+
--- /dev/null
+msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED"
+msgstr "Restringidas todas las llamadas entrantes"
+
+msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED"
+msgstr "Restringidas todas las llamadas salientes"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS"
+msgstr "Desvío de llamadas: Siempre"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_NO_ANSWER"
+msgstr "Desvío de llamadas: Sin respuesta"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_UNREACHABLE"
+msgstr "Desvío de llamada: Si no localizable"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY"
+msgstr "Desvío de llamada: Si ocupado"
+
+msgid "IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING"
+msgstr "Llamadas entrantes restringidas en el extranjero"
+
+msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED"
+msgstr "Llamadas internacionales salientes excepto país de origen restringidas"
+
+msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED"
+msgstr "Llamadas salientes internacionales restringidas"
+
+msgid "IDS_COM_POP_FOR_ALL_TELE_SERVICES_EXCEPT_SMS"
+msgstr "para todos los servicios teleservicios excepto SMS"
+
+msgid "IDS_CST_BODY_ALL_CALLS"
+msgstr "Todas las llamadas"
+
+msgid "IDS_CST_BODY_CALL_BARRING"
+msgstr "Restricción de llamadas"
+
+msgid "IDS_CST_BODY_CALL_DIVERTING"
+msgstr "Desvío de llamadas"
+
+msgid "IDS_CST_BODY_CALL_WAITING"
+msgstr "Llamada en espera"
+
+msgid "IDS_CST_BODY_ENTER_NUMBER"
+msgstr "Introducir número"
+
+msgid "IDS_CST_BODY_FAX"
+msgstr "Fax"
+
+msgid "IDS_CST_HEADER_CONDITIONAL"
+msgstr "Condicional"
+
+msgid "IDS_CST_POP_ALL_ASYNCHRONOUS_DATA"
+msgstr "Todos los datos asíncronos"
+
+msgid "IDS_CST_POP_ALL_BEARER_SERVICES"
+msgstr "Todos los servicios de portador"
+
+msgid "IDS_CST_POP_ALL_DATA_SERVICES"
+msgstr "Todos los servicios de datos"
+
+msgid "IDS_CST_POP_ALL_PADCA_SERVICES"
+msgstr "Todos los servicios PADCA"
+
+msgid "IDS_CST_POP_ALL_PDS_SERVICES"
+msgstr "Todos los servicios PDS"
+
+msgid "IDS_CST_POP_ALL_PLMN_BEARERS"
+msgstr "Todos los portadores de PLMN"
+
+msgid "IDS_CST_POP_ALL_SERVICES"
+msgstr "Todos los servicios"
+
+msgid "IDS_CST_POP_ALL_SYNCHRONOUS_SERVICES"
+msgstr "Todos los servicios síncronos"
+
+msgid "IDS_CST_POP_ALL_TELECOM_SERVICES"
+msgstr "Todos los servicios de telecomunicaciones"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING"
+msgstr "El número de respuesta no aparece cuando llama"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING"
+msgstr "El número de respuesta aparece cuando llama"
+
+msgid "IDS_CST_POP_ASYNCHRONOUS_DATA_SERVICES"
+msgstr "Servicios de datos asíncronos"
+
+msgid "IDS_CST_POP_CALLER_ID_AVAILABLE"
+msgstr "ID de llamante disponible"
+
+msgid "IDS_CST_POP_CALLER_ID_HIDDEN"
+msgstr "ID de llamante oculta"
+
+msgid "IDS_CST_POP_CALLER_ID_RESTRICTED"
+msgstr "ID de llamante restringido"
+
+msgid "IDS_CST_POP_CALLER_ID_SHOWN"
+msgstr "ID de llamante visible"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS"
+msgstr "Mi ID de llamante no se envía al responder a las llamadas"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING"
+msgstr "Mi ID de llamante no se envía al llamar"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS"
+msgstr "Mi ID de llamante se enviará al responder llamadas"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING"
+msgstr "Mi ID de llamante se enviará al llamar"
+
+msgid "IDS_CST_POP_PASSWORD_BLOCKED"
+msgstr "Contraseña bloqueada"
+
+msgid "IDS_CST_POP_REJECTED_BY_NETWORK"
+msgstr "Rechazado por la red"
+
+msgid "IDS_CST_POP_REQUESTING_ING"
+msgstr "Solicitando..."
+
+msgid "IDS_CST_POP_SERVICE_NOT_AUTHORISED"
+msgstr "Servicio no autorizado"
+
+msgid "IDS_ST_POP_ALL_BARRING"
+msgstr "Todas las llamadas restringidas"
+
+msgid "IDS_ST_POP_INCOMING_BARRING"
+msgstr "Restricción de entrantes"
+
+msgid "IDS_ST_POP_OUTGOING_BARRING"
+msgstr "Restricción de salientes"
+
+msgid "IDS_CST_POP_SERVICE_UNAVAILABLE"
+msgstr "Servicio no disponible"
+
+msgid "IDS_CST_POP_INVALID_PASSWORD"
+msgstr "Contraseña incorrecta"
+
+msgid "IDS_CST_OPT_CHANGE_PASSWORD"
+msgstr "Cambiar contraseña"
+
--- /dev/null
+msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED"
+msgstr "Tous appels entrants interdits"
+
+msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED"
+msgstr "Tous appels sortants interdits"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS"
+msgstr "Renvoi d'appel activé : Toujours"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_NO_ANSWER"
+msgstr "Renvoi d'appel activé : Aucune réponse"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_UNREACHABLE"
+msgstr "Renvoi d'appel activé : Injoignable"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY"
+msgstr "Renvoi d'appel activé : Occupé"
+
+msgid "IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING"
+msgstr "Appels entrants interdits en itinérance"
+
+msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED"
+msgstr "Appels internationaux sortants interdits sauf vers pays d'origine"
+
+msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED"
+msgstr "Appels internationaux sortants interdits"
+
+msgid "IDS_COM_POP_FOR_ALL_TELE_SERVICES_EXCEPT_SMS"
+msgstr "Pour tous les téléservices, sauf SMS"
+
+msgid "IDS_CST_BODY_ALL_CALLS"
+msgstr "Tous les appels"
+
+msgid "IDS_CST_BODY_CALL_BARRING"
+msgstr "Restriction d'appel"
+
+msgid "IDS_CST_BODY_CALL_DIVERTING"
+msgstr "Renvoi d'appel"
+
+msgid "IDS_CST_BODY_CALL_WAITING"
+msgstr "Signal d'appel"
+
+msgid "IDS_CST_BODY_ENTER_NUMBER"
+msgstr "Entrez le numéro"
+
+msgid "IDS_CST_BODY_FAX"
+msgstr "Fax"
+
+msgid "IDS_CST_HEADER_CONDITIONAL"
+msgstr "Conditionnel"
+
+msgid "IDS_CST_POP_ALL_ASYNCHRONOUS_DATA"
+msgstr "Toutes les données asynchrones"
+
+msgid "IDS_CST_POP_ALL_BEARER_SERVICES"
+msgstr "Tous serv. support"
+
+msgid "IDS_CST_POP_ALL_DATA_SERVICES"
+msgstr "Tous les services de données"
+
+msgid "IDS_CST_POP_ALL_PADCA_SERVICES"
+msgstr "Tous les services PADCA"
+
+msgid "IDS_CST_POP_ALL_PDS_SERVICES"
+msgstr "Tous les services PDS"
+
+msgid "IDS_CST_POP_ALL_PLMN_BEARERS"
+msgstr "Tous les supports PLMN"
+
+msgid "IDS_CST_POP_ALL_SERVICES"
+msgstr "Tous les services"
+
+msgid "IDS_CST_POP_ALL_SYNCHRONOUS_SERVICES"
+msgstr "Tous les services synchrones"
+
+msgid "IDS_CST_POP_ALL_TELECOM_SERVICES"
+msgstr "Tous serv. télécom."
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING"
+msgstr "Le numéro du transfert d'appel n'apparaît pas pendant l'appel"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING"
+msgstr "Le numéro du transfert d'appel apparaît pendant l'appel"
+
+msgid "IDS_CST_POP_ASYNCHRONOUS_DATA_SERVICES"
+msgstr "Services de données asynchrones"
+
+msgid "IDS_CST_POP_CALLER_ID_AVAILABLE"
+msgstr "ID appelant disponible"
+
+msgid "IDS_CST_POP_CALLER_ID_HIDDEN"
+msgstr "N° appelant masqué"
+
+msgid "IDS_CST_POP_CALLER_ID_RESTRICTED"
+msgstr "N° appelant restreint"
+
+msgid "IDS_CST_POP_CALLER_ID_SHOWN"
+msgstr "N° appelant affiché"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS"
+msgstr "Mon ID appelant n'est pas envoyé en cas d'appel répondu"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING"
+msgstr "Mon ID appelant n'est pas envoyé en cas d'appel passé"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS"
+msgstr "Mon ID appelant est envoyé lors de la réponse à un appel"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING"
+msgstr "Mon ID appelant est envoyé lors d'un appel émis"
+
+msgid "IDS_CST_POP_PASSWORD_BLOCKED"
+msgstr "Mot de passe bloqué"
+
+msgid "IDS_CST_POP_REJECTED_BY_NETWORK"
+msgstr "Rejeté par le réseau"
+
+msgid "IDS_CST_POP_REQUESTING_ING"
+msgstr "Demande en cours..."
+
+msgid "IDS_CST_POP_SERVICE_NOT_AUTHORISED"
+msgstr "Service non autorisé"
+
+msgid "IDS_ST_POP_ALL_BARRING"
+msgstr "Toutes les interdictions d'appel"
+
+msgid "IDS_ST_POP_INCOMING_BARRING"
+msgstr "Interdire appels entrants"
+
+msgid "IDS_ST_POP_OUTGOING_BARRING"
+msgstr "Interdire appels sortants"
+
+msgid "IDS_CST_POP_SERVICE_UNAVAILABLE"
+msgstr "Service non disponible"
+
+msgid "IDS_CST_POP_INVALID_PASSWORD"
+msgstr "Mot de passe incorrect"
+
+msgid "IDS_CST_OPT_CHANGE_PASSWORD"
+msgstr "Modifier mot de passe"
+
--- /dev/null
+msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED"
+msgstr "Blocco di tutte le chiamate entranti"
+
+msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED"
+msgstr "Blocco di tutte le chiamate uscenti"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS"
+msgstr "Trasferimento chiamate attivo: sempre"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_NO_ANSWER"
+msgstr "Trasferimento chiamate attivo: nessuna risposta"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_UNREACHABLE"
+msgstr "Trasferimento chiamate attivo: non raggiungibile"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY"
+msgstr "Trasferimento chiamate attivo: occupato"
+
+msgid "IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING"
+msgstr "Chiamate in arrivo bloccate durante roaming"
+
+msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED"
+msgstr "Chiamate internazionali in uscita bloccate tranne verso proprio paese"
+
+msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED"
+msgstr "Uscenti internazionali bloccate"
+
+msgid "IDS_COM_POP_FOR_ALL_TELE_SERVICES_EXCEPT_SMS"
+msgstr "per tutti i servizi telefonici eccetto SMS"
+
+msgid "IDS_CST_BODY_ALL_CALLS"
+msgstr "Tutte le chiamate"
+
+msgid "IDS_CST_BODY_CALL_BARRING"
+msgstr "Blocco chiamate"
+
+msgid "IDS_CST_BODY_CALL_DIVERTING"
+msgstr "Trasferimento chiamate"
+
+msgid "IDS_CST_BODY_CALL_WAITING"
+msgstr "Avviso di chiamata"
+
+msgid "IDS_CST_BODY_ENTER_NUMBER"
+msgstr "Inserisci numero"
+
+msgid "IDS_CST_BODY_FAX"
+msgstr "Fax"
+
+msgid "IDS_CST_HEADER_CONDITIONAL"
+msgstr "Condizionale"
+
+msgid "IDS_CST_POP_ALL_ASYNCHRONOUS_DATA"
+msgstr "Tutti i dati asincroni"
+
+msgid "IDS_CST_POP_ALL_BEARER_SERVICES"
+msgstr "Tutti i servizi di rete"
+
+msgid "IDS_CST_POP_ALL_DATA_SERVICES"
+msgstr "Tutti i servizi dati"
+
+msgid "IDS_CST_POP_ALL_PADCA_SERVICES"
+msgstr "Tutti i servizi PADCA"
+
+msgid "IDS_CST_POP_ALL_PDS_SERVICES"
+msgstr "Tutti i servizi PDS"
+
+msgid "IDS_CST_POP_ALL_PLMN_BEARERS"
+msgstr "Tutte le reti PLMN"
+
+msgid "IDS_CST_POP_ALL_SERVICES"
+msgstr "Tutti i servizi"
+
+msgid "IDS_CST_POP_ALL_SYNCHRONOUS_SERVICES"
+msgstr "Tutti i servizi sincroni"
+
+msgid "IDS_CST_POP_ALL_TELECOM_SERVICES"
+msgstr "Tutti i servizi telecomunic."
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING"
+msgstr "Il numero del telefono ricevente non compare quando si effettua una chiamata"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING"
+msgstr "Il numero del telefono ricevente compare quando si effettua una chiamata"
+
+msgid "IDS_CST_POP_ASYNCHRONOUS_DATA_SERVICES"
+msgstr "Servizi dati asincroni"
+
+msgid "IDS_CST_POP_CALLER_ID_AVAILABLE"
+msgstr "ID chiamante disponibile"
+
+msgid "IDS_CST_POP_CALLER_ID_HIDDEN"
+msgstr "ID chiamante nascosto"
+
+msgid "IDS_CST_POP_CALLER_ID_RESTRICTED"
+msgstr "Numero nascosto"
+
+msgid "IDS_CST_POP_CALLER_ID_SHOWN"
+msgstr "Numero visualizzato"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS"
+msgstr "L'ID chiamante personale non viene inviato quando si risponde alle chiamate"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING"
+msgstr "L'ID chiamante personale non viene inviato quando si effettuano chiamate"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS"
+msgstr "L'ID chiamante personale viene inviato quando si risponde alle chiamate"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING"
+msgstr "L'ID chiamante personale viene inviato quando si effettuano chiamate"
+
+msgid "IDS_CST_POP_PASSWORD_BLOCKED"
+msgstr "Password bloccata"
+
+msgid "IDS_CST_POP_REJECTED_BY_NETWORK"
+msgstr "Rifiutato dalla rete"
+
+msgid "IDS_CST_POP_REQUESTING_ING"
+msgstr "Richiesta in corso"
+
+msgid "IDS_CST_POP_SERVICE_NOT_AUTHORISED"
+msgstr "Servizio non autorizzato"
+
+msgid "IDS_ST_POP_ALL_BARRING"
+msgstr "Tutte bloccate"
+
+msgid "IDS_ST_POP_INCOMING_BARRING"
+msgstr "Blocco chiamate in arrivo"
+
+msgid "IDS_ST_POP_OUTGOING_BARRING"
+msgstr "Blocco chiamate in uscita"
+
+msgid "IDS_CST_POP_SERVICE_UNAVAILABLE"
+msgstr "Servizio non disponibile"
+
+msgid "IDS_CST_POP_INVALID_PASSWORD"
+msgstr "Password non valida"
+
+msgid "IDS_CST_OPT_CHANGE_PASSWORD"
+msgstr "Cambia password"
+
--- /dev/null
+msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED"
+msgstr "全ての着信が規制されています"
+
+msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED"
+msgstr "全ての発信が規制されています"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS"
+msgstr "通話を転送する:常時"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_NO_ANSWER"
+msgstr "通話を転送する:応答なし"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_UNREACHABLE"
+msgstr "通話を転送:圏外時"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY"
+msgstr "通話を転送:ビジー時"
+
+msgid "IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING"
+msgstr "ローミング中は着信が規制されます"
+
+msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED"
+msgstr "自国以外の全ての国際電話発信が規制されています"
+
+msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED"
+msgstr "全ての国際電話発信が規制されています"
+
+msgid "IDS_COM_POP_FOR_ALL_TELE_SERVICES_EXCEPT_SMS"
+msgstr "SMS以外の全てのテレサービス用"
+
+msgid "IDS_CST_BODY_ALL_CALLS"
+msgstr "全通話"
+
+msgid "IDS_CST_BODY_CALL_BARRING"
+msgstr "発着信規制"
+
+msgid "IDS_CST_BODY_CALL_DIVERTING"
+msgstr "転送でんわ"
+
+msgid "IDS_CST_BODY_CALL_WAITING"
+msgstr "キャッチホン"
+
+msgid "IDS_CST_BODY_ENTER_NUMBER"
+msgstr "直接入力"
+
+msgid "IDS_CST_BODY_FAX"
+msgstr "FAX"
+
+msgid "IDS_CST_HEADER_CONDITIONAL"
+msgstr "条件付き"
+
+msgid "IDS_CST_POP_ALL_ASYNCHRONOUS_DATA"
+msgstr "全ての非同期データ"
+
+msgid "IDS_CST_POP_ALL_BEARER_SERVICES"
+msgstr "全てのベアラサービス"
+
+msgid "IDS_CST_POP_ALL_DATA_SERVICES"
+msgstr "全てのデータサービス"
+
+msgid "IDS_CST_POP_ALL_PADCA_SERVICES"
+msgstr "全てのPADCAサービス"
+
+msgid "IDS_CST_POP_ALL_PDS_SERVICES"
+msgstr "全てのPDSサービス"
+
+msgid "IDS_CST_POP_ALL_PLMN_BEARERS"
+msgstr "全てのPLMNベアラ"
+
+msgid "IDS_CST_POP_ALL_SERVICES"
+msgstr "全てのサービス"
+
+msgid "IDS_CST_POP_ALL_SYNCHRONOUS_SERVICES"
+msgstr "全ての同期サービス"
+
+msgid "IDS_CST_POP_ALL_TELECOM_SERVICES"
+msgstr "全ての通信サービス"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING"
+msgstr "通話時に電話番号非表示"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING"
+msgstr "通話時に電話番号表示"
+
+msgid "IDS_CST_POP_ASYNCHRONOUS_DATA_SERVICES"
+msgstr "非同期データサービス"
+
+msgid "IDS_CST_POP_CALLER_ID_AVAILABLE"
+msgstr "着信画像を利用できます"
+
+msgid "IDS_CST_POP_CALLER_ID_HIDDEN"
+msgstr "着信時に発信者番号を表示しません"
+
+msgid "IDS_CST_POP_CALLER_ID_RESTRICTED"
+msgstr "発信者番号制限あり"
+
+msgid "IDS_CST_POP_CALLER_ID_SHOWN"
+msgstr "着信時に発信者番号を表示"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS"
+msgstr "応答時に発信者IDを送信しません"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING"
+msgstr "発信時に発信者番号を通知しません"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS"
+msgstr "応答時に発信者IDを送信します"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING"
+msgstr "通話時に発信者IDを送信します"
+
+msgid "IDS_CST_POP_PASSWORD_BLOCKED"
+msgstr "パスワードがブロックされました"
+
+msgid "IDS_CST_POP_REJECTED_BY_NETWORK"
+msgstr "ネットワークに拒否されました"
+
+msgid "IDS_CST_POP_REQUESTING_ING"
+msgstr "要求中..."
+
+msgid "IDS_CST_POP_SERVICE_NOT_AUTHORISED"
+msgstr "サービスは未認証です"
+
+msgid "IDS_ST_POP_ALL_BARRING"
+msgstr "全ての発着信規制"
+
+msgid "IDS_ST_POP_INCOMING_BARRING"
+msgstr "受信規制です"
+
+msgid "IDS_ST_POP_OUTGOING_BARRING"
+msgstr "発信規制です"
+
+msgid "IDS_CST_POP_SERVICE_UNAVAILABLE"
+msgstr "サービスを利用できません"
+
+msgid "IDS_CST_POP_INVALID_PASSWORD"
+msgstr "パスワードが無効です"
+
+msgid "IDS_CST_OPT_CHANGE_PASSWORD"
+msgstr "暗証番号変更"
+
--- /dev/null
+msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED"
+msgstr "모든 수신 전화가 제한되었습니다"
+
+msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED"
+msgstr "모든 발신 전화가 제한되었습니다"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS"
+msgstr "착신통화 : 항상"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_NO_ANSWER"
+msgstr "착신통화 : 응답 없을 때"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_UNREACHABLE"
+msgstr "착신통화 : 서비스 지역 이탈 시"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY"
+msgstr "통화 중일 때"
+
+msgid "IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING"
+msgstr "로밍 중에는 전화 수신이 제한됩니다"
+
+msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED"
+msgstr "자국으로 거는 전화를 제외한 모든 국제전화 발신이 제한되었습니다"
+
+msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED"
+msgstr "국제전화 발신이 제한되었습니다"
+
+msgid "IDS_COM_POP_FOR_ALL_TELE_SERVICES_EXCEPT_SMS"
+msgstr "SMS를 제외한 모든 통신 서비스"
+
+msgid "IDS_CST_BODY_ALL_CALLS"
+msgstr "모든 전화"
+
+msgid "IDS_CST_BODY_CALL_BARRING"
+msgstr "통화제한"
+
+msgid "IDS_CST_BODY_CALL_DIVERTING"
+msgstr "착신전환"
+
+msgid "IDS_CST_BODY_CALL_WAITING"
+msgstr "통화대기"
+
+msgid "IDS_CST_BODY_ENTER_NUMBER"
+msgstr "전화번호를 입력하세요"
+
+msgid "IDS_CST_BODY_FAX"
+msgstr "팩스"
+
+msgid "IDS_CST_HEADER_CONDITIONAL"
+msgstr "조건부"
+
+msgid "IDS_CST_POP_ALL_ASYNCHRONOUS_DATA"
+msgstr "모든 비동기 데이터"
+
+msgid "IDS_CST_POP_ALL_BEARER_SERVICES"
+msgstr "모든 베어러 서비스"
+
+msgid "IDS_CST_POP_ALL_DATA_SERVICES"
+msgstr "모든 데이터 서비스"
+
+msgid "IDS_CST_POP_ALL_PADCA_SERVICES"
+msgstr "모든 PADCA 서비스"
+
+msgid "IDS_CST_POP_ALL_PDS_SERVICES"
+msgstr "모든 PDS 서비스"
+
+msgid "IDS_CST_POP_ALL_PLMN_BEARERS"
+msgstr "모든 PLMN"
+
+msgid "IDS_CST_POP_ALL_SERVICES"
+msgstr "모든 서비스"
+
+msgid "IDS_CST_POP_ALL_SYNCHRONOUS_SERVICES"
+msgstr "모든 동기 서비스"
+
+msgid "IDS_CST_POP_ALL_TELECOM_SERVICES"
+msgstr "모든 사업자 서비스"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING"
+msgstr "전화를 걸 때 상대방 전화번호가 표시되지 않습니다"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING"
+msgstr "전화를 걸 때 상대방 전화번호가 표시됩니다"
+
+msgid "IDS_CST_POP_ASYNCHRONOUS_DATA_SERVICES"
+msgstr "비동기 데이터 서비스"
+
+msgid "IDS_CST_POP_CALLER_ID_AVAILABLE"
+msgstr "발신자 번호가 표시됩니다"
+
+msgid "IDS_CST_POP_CALLER_ID_HIDDEN"
+msgstr "발신자 번호가 표시되지 않습니다"
+
+msgid "IDS_CST_POP_CALLER_ID_RESTRICTED"
+msgstr "발신자 번호 표시 제한"
+
+msgid "IDS_CST_POP_CALLER_ID_SHOWN"
+msgstr "발신자 번호가 표시됩니다"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS"
+msgstr "전화를 받을 때 내 전화번호를 전송하지 않습니다"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING"
+msgstr "전화를 걸 때 내 전화번호를 전송하지 않습니다"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS"
+msgstr "전화를 받을 때 내 발신자 정보를 전송합니다"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING"
+msgstr "전화를 걸 때 내 발신자 정보를 전송합니다"
+
+msgid "IDS_CST_POP_PASSWORD_BLOCKED"
+msgstr "비밀번호가 잠금 설정되었습니다"
+
+msgid "IDS_CST_POP_REJECTED_BY_NETWORK"
+msgstr "네트워크에서 거부되었습니다"
+
+msgid "IDS_CST_POP_REQUESTING_ING"
+msgstr "요청 중..."
+
+msgid "IDS_CST_POP_SERVICE_NOT_AUTHORISED"
+msgstr "서비스가 인증되지 않았습니다"
+
+msgid "IDS_ST_POP_ALL_BARRING"
+msgstr "모두 제한되었습니다"
+
+msgid "IDS_ST_POP_INCOMING_BARRING"
+msgstr "수신 제한"
+
+msgid "IDS_ST_POP_OUTGOING_BARRING"
+msgstr "발신제한"
+
+msgid "IDS_CST_POP_SERVICE_UNAVAILABLE"
+msgstr "서비스를 사용할 수 없습니다"
+
+msgid "IDS_CST_POP_INVALID_PASSWORD"
+msgstr "비밀번호가 바르지 않습니다"
+
+msgid "IDS_CST_OPT_CHANGE_PASSWORD"
+msgstr "비밀번호 변경"
+
--- /dev/null
+msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED"
+msgstr "Alle inkomende oproepen geblokkeerd"
+
+msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED"
+msgstr "Alle uitgaande oproepen geblokkeerd"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS"
+msgstr "Alle oproepen doorschakelen"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_NO_ANSWER"
+msgstr "Oproepen doorschakelen bij geen antwoord"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_UNREACHABLE"
+msgstr "Doorschakelen indien onbereikbaar"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY"
+msgstr "Doorschakelen bij in gesprek"
+
+msgid "IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING"
+msgstr "Inkomende oproepen in buitenland geblokkeerd"
+
+msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED"
+msgstr "Uitgaande internationale oproepen geblokkeerd behalve naar eigen land"
+
+msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED"
+msgstr "Uitgaande internationale oproepen geblokkeerd"
+
+msgid "IDS_COM_POP_FOR_ALL_TELE_SERVICES_EXCEPT_SMS"
+msgstr "voor Alle teleservices behalve SMS"
+
+msgid "IDS_CST_BODY_ALL_CALLS"
+msgstr "Alle oproepen"
+
+msgid "IDS_CST_BODY_CALL_BARRING"
+msgstr "Oproepen blokkeren"
+
+msgid "IDS_CST_BODY_CALL_DIVERTING"
+msgstr "Oproepen doorschakelen"
+
+msgid "IDS_CST_BODY_CALL_WAITING"
+msgstr "Wisselgesprek"
+
+msgid "IDS_CST_BODY_ENTER_NUMBER"
+msgstr "Geef het nummer in"
+
+msgid "IDS_CST_BODY_FAX"
+msgstr "Fax"
+
+msgid "IDS_CST_HEADER_CONDITIONAL"
+msgstr "Voorwaardelijk"
+
+msgid "IDS_CST_POP_ALL_ASYNCHRONOUS_DATA"
+msgstr "Alle asynchrone gegevens"
+
+msgid "IDS_CST_POP_ALL_BEARER_SERVICES"
+msgstr "Alle dragerdiensten"
+
+msgid "IDS_CST_POP_ALL_DATA_SERVICES"
+msgstr "Alle datadiensten"
+
+msgid "IDS_CST_POP_ALL_PADCA_SERVICES"
+msgstr "Alle PADCA-diensten"
+
+msgid "IDS_CST_POP_ALL_PDS_SERVICES"
+msgstr "Alle PDS-diensten"
+
+msgid "IDS_CST_POP_ALL_PLMN_BEARERS"
+msgstr "Alle PLMN-dragers"
+
+msgid "IDS_CST_POP_ALL_SERVICES"
+msgstr "Alle diensten"
+
+msgid "IDS_CST_POP_ALL_SYNCHRONOUS_SERVICES"
+msgstr "Alle synchrone diensten"
+
+msgid "IDS_CST_POP_ALL_TELECOM_SERVICES"
+msgstr "Alle telecom-diensten"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING"
+msgstr "Gebelde nummer niet tonen tijdens oproep"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING"
+msgstr "Gebelde nummer tonen tijdens oproep"
+
+msgid "IDS_CST_POP_ASYNCHRONOUS_DATA_SERVICES"
+msgstr "Asynchrone datadiensten"
+
+msgid "IDS_CST_POP_CALLER_ID_AVAILABLE"
+msgstr "Beller-id beschikbaar"
+
+msgid "IDS_CST_POP_CALLER_ID_HIDDEN"
+msgstr "Beller-id verborgen"
+
+msgid "IDS_CST_POP_CALLER_ID_RESTRICTED"
+msgstr "Beller-ID beperkt"
+
+msgid "IDS_CST_POP_CALLER_ID_SHOWN"
+msgstr "Info beller tonen"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS"
+msgstr "Mijn nummer niet\ntonen bij\ninkomende oproep"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING"
+msgstr "Mijn nummer\nniet tonen\nbij uitgaande oproep"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS"
+msgstr "Mijn nummer tonen\nbij inkomende\noproep"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING"
+msgstr "Mijn nummer tonen\nbij uitgaande\noproep"
+
+msgid "IDS_CST_POP_PASSWORD_BLOCKED"
+msgstr "Wachtwoord geblokkeerd"
+
+msgid "IDS_CST_POP_REJECTED_BY_NETWORK"
+msgstr "Geweigerd door netwerk"
+
+msgid "IDS_CST_POP_REQUESTING_ING"
+msgstr "Aanvragen..."
+
+msgid "IDS_CST_POP_SERVICE_NOT_AUTHORISED"
+msgstr "Dienst niet toegestaan"
+
+msgid "IDS_ST_POP_ALL_BARRING"
+msgstr "Alles geblokkeerd"
+
+msgid "IDS_ST_POP_INCOMING_BARRING"
+msgstr "Inkomend blokkeren"
+
+msgid "IDS_ST_POP_OUTGOING_BARRING"
+msgstr "Uitgaand blokkeren"
+
+msgid "IDS_CST_POP_SERVICE_UNAVAILABLE"
+msgstr "Service niet beschikbaar"
+
+msgid "IDS_CST_POP_INVALID_PASSWORD"
+msgstr "Wachtwoord onjuist"
+
+msgid "IDS_CST_OPT_CHANGE_PASSWORD"
+msgstr "Wachtwoord wijzigen"
+
--- /dev/null
+msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED"
+msgstr "Todas as chamadas recebidas restringidas"
+
+msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED"
+msgstr "Todas as chamadas efectuadas restringidas"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS"
+msgstr "Desvio de chamadas activado: Sempre"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_NO_ANSWER"
+msgstr "Desvio de chamadas activado: Não atende"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_UNREACHABLE"
+msgstr "Desvio de chamadas activado: Incontactável"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY"
+msgstr "Desvio de chamadas activado: Se ocupado"
+
+msgid "IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING"
+msgstr "Chamadas recebidas barradas quando em roaming"
+
+msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED"
+msgstr "Chamadas internacionais efectuadas barradas excepto para origem"
+
+msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED"
+msgstr "Chamadas internacionais restringidas"
+
+msgid "IDS_COM_POP_FOR_ALL_TELE_SERVICES_EXCEPT_SMS"
+msgstr "para todos os serviços Tele excepto SMS"
+
+msgid "IDS_CST_BODY_ALL_CALLS"
+msgstr "Todas as chamadas"
+
+msgid "IDS_CST_BODY_CALL_BARRING"
+msgstr "Barramento de chamadas"
+
+msgid "IDS_CST_BODY_CALL_DIVERTING"
+msgstr "Desvio de chamadas"
+
+msgid "IDS_CST_BODY_CALL_WAITING"
+msgstr "Chamada em espera"
+
+msgid "IDS_CST_BODY_ENTER_NUMBER"
+msgstr "Introduzir número"
+
+msgid "IDS_CST_BODY_FAX"
+msgstr "Fax"
+
+msgid "IDS_CST_HEADER_CONDITIONAL"
+msgstr "Condicional"
+
+msgid "IDS_CST_POP_ALL_ASYNCHRONOUS_DATA"
+msgstr "Todos os dados assíncronos"
+
+msgid "IDS_CST_POP_ALL_BEARER_SERVICES"
+msgstr "Todos os serviços da portadora"
+
+msgid "IDS_CST_POP_ALL_DATA_SERVICES"
+msgstr "Todos os serviços de dados"
+
+msgid "IDS_CST_POP_ALL_PADCA_SERVICES"
+msgstr "Todos os serviços PADCA"
+
+msgid "IDS_CST_POP_ALL_PDS_SERVICES"
+msgstr "Todos os serviços PDS"
+
+msgid "IDS_CST_POP_ALL_PLMN_BEARERS"
+msgstr "Todas as portadoras PLMN"
+
+msgid "IDS_CST_POP_ALL_SERVICES"
+msgstr "Todos os serviços"
+
+msgid "IDS_CST_POP_ALL_SYNCHRONOUS_SERVICES"
+msgstr "Todos os serviços síncronos"
+
+msgid "IDS_CST_POP_ALL_TELECOM_SERVICES"
+msgstr "Todos os serviços de telecomunicações"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING"
+msgstr "Número de atendimento não é mostrado ao efectuar chamada"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING"
+msgstr "Número de atendimento é mostrado ao efectuar chamada"
+
+msgid "IDS_CST_POP_ASYNCHRONOUS_DATA_SERVICES"
+msgstr "Serviços de dados assíncronos"
+
+msgid "IDS_CST_POP_CALLER_ID_AVAILABLE"
+msgstr "ID de chamador disponível"
+
+msgid "IDS_CST_POP_CALLER_ID_HIDDEN"
+msgstr "ID de chamador oculto"
+
+msgid "IDS_CST_POP_CALLER_ID_RESTRICTED"
+msgstr "ID do chamador restringido"
+
+msgid "IDS_CST_POP_CALLER_ID_SHOWN"
+msgstr "ID do chamador exibido"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS"
+msgstr "O meu ID de chamador não é enviado durante o atendimento de chamadas"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING"
+msgstr "O meu ID de chamador não é enviado durante a realização de chamadas"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS"
+msgstr "O meu ID de chamador é enviado durante o atendimento de chamadas"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING"
+msgstr "O meu ID de chamador é enviado durante a realização de chamadas"
+
+msgid "IDS_CST_POP_PASSWORD_BLOCKED"
+msgstr "Palavra-passe bloqueada"
+
+msgid "IDS_CST_POP_REJECTED_BY_NETWORK"
+msgstr "Rejeitado pela rede"
+
+msgid "IDS_CST_POP_REQUESTING_ING"
+msgstr "A pedir..."
+
+msgid "IDS_CST_POP_SERVICE_NOT_AUTHORISED"
+msgstr "Serviço não autorizado"
+
+msgid "IDS_ST_POP_ALL_BARRING"
+msgstr "Todos os barramentos"
+
+msgid "IDS_ST_POP_INCOMING_BARRING"
+msgstr "Barramento de recepção"
+
+msgid "IDS_ST_POP_OUTGOING_BARRING"
+msgstr "Barramento de efectuadas"
+
+msgid "IDS_CST_POP_SERVICE_UNAVAILABLE"
+msgstr "Serviço não disponível"
+
+msgid "IDS_CST_POP_INVALID_PASSWORD"
+msgstr "Palavra-passe inválida"
+
+msgid "IDS_CST_OPT_CHANGE_PASSWORD"
+msgstr "Alterar palavra-passe"
+
--- /dev/null
+msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED"
+msgstr "Все входящие вызовы запрещены"
+
+msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED"
+msgstr "Все исходящие вызовы\nзапрещены"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS"
+msgstr "Переадресация вызовов: Всегда"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_NO_ANSWER"
+msgstr "Переадресация вызова: Нет ответа"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_UNREACHABLE"
+msgstr "Переадресация вызовов: Если недоступен"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY"
+msgstr "Переадресация вызова: Если занято"
+
+msgid "IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING"
+msgstr "Входящие вызовы запрещены при роуминге"
+
+msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED"
+msgstr "Запрет исходящих международных вызовов, кроме домашних"
+
+msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED"
+msgstr "Исходящие международные\nвызовы запрещены"
+
+msgid "IDS_COM_POP_FOR_ALL_TELE_SERVICES_EXCEPT_SMS"
+msgstr "для всех услуги связи SMS"
+
+msgid "IDS_CST_BODY_ALL_CALLS"
+msgstr "Все вызовы"
+
+msgid "IDS_CST_BODY_CALL_BARRING"
+msgstr "Запрет вызова"
+
+msgid "IDS_CST_BODY_CALL_DIVERTING"
+msgstr "Переадресация вызова"
+
+msgid "IDS_CST_BODY_CALL_WAITING"
+msgstr "Ожидание вызова"
+
+msgid "IDS_CST_BODY_ENTER_NUMBER"
+msgstr "Введите номер"
+
+msgid "IDS_CST_BODY_FAX"
+msgstr "Факс"
+
+msgid "IDS_CST_HEADER_CONDITIONAL"
+msgstr "Условная"
+
+msgid "IDS_CST_POP_ALL_ASYNCHRONOUS_DATA"
+msgstr "Все асинхронные данные"
+
+msgid "IDS_CST_POP_ALL_BEARER_SERVICES"
+msgstr "Все услуги каналов"
+
+msgid "IDS_CST_POP_ALL_DATA_SERVICES"
+msgstr "Все услуги данных"
+
+msgid "IDS_CST_POP_ALL_PADCA_SERVICES"
+msgstr "Все услуги PADCA"
+
+msgid "IDS_CST_POP_ALL_PDS_SERVICES"
+msgstr "Все услуги PDS"
+
+msgid "IDS_CST_POP_ALL_PLMN_BEARERS"
+msgstr "Все каналы PLMN"
+
+msgid "IDS_CST_POP_ALL_SERVICES"
+msgstr "Все услуги"
+
+msgid "IDS_CST_POP_ALL_SYNCHRONOUS_SERVICES"
+msgstr "Все синхронные услуги"
+
+msgid "IDS_CST_POP_ALL_TELECOM_SERVICES"
+msgstr "Все услуги связи"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING"
+msgstr "Не отображать номер абонента при ответе на вызов"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING"
+msgstr "Отображать номер абонента при ответе на вызов"
+
+msgid "IDS_CST_POP_ASYNCHRONOUS_DATA_SERVICES"
+msgstr "Асинхронные услуги данных"
+
+msgid "IDS_CST_POP_CALLER_ID_AVAILABLE"
+msgstr "Фотоопределитель доступен"
+
+msgid "IDS_CST_POP_CALLER_ID_HIDDEN"
+msgstr "Фотоопределитель скрыт"
+
+msgid "IDS_CST_POP_CALLER_ID_RESTRICTED"
+msgstr "Фотоопределитель ограничен"
+
+msgid "IDS_CST_POP_CALLER_ID_SHOWN"
+msgstr "Фотоопределитель отображается"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS"
+msgstr "Не передавать мой номер при ответе на вызовы"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING"
+msgstr "Не передавать мой номер во время вызова"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS"
+msgstr "Мой номер отправляется при ответе на вызов"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING"
+msgstr "Мой номер отправляется при вызове"
+
+msgid "IDS_CST_POP_PASSWORD_BLOCKED"
+msgstr "Пароль заблокирован"
+
+msgid "IDS_CST_POP_REJECTED_BY_NETWORK"
+msgstr "Отклонено сетью"
+
+msgid "IDS_CST_POP_REQUESTING_ING"
+msgstr "Запрос..."
+
+msgid "IDS_CST_POP_SERVICE_NOT_AUTHORISED"
+msgstr "Услуга не разрешена"
+
+msgid "IDS_ST_POP_ALL_BARRING"
+msgstr "Все запрещены"
+
+msgid "IDS_ST_POP_INCOMING_BARRING"
+msgstr "Запрет входящих"
+
+msgid "IDS_ST_POP_OUTGOING_BARRING"
+msgstr "Запрет исходящих"
+
+msgid "IDS_CST_POP_SERVICE_UNAVAILABLE"
+msgstr "Услуга недоступна"
+
+msgid "IDS_CST_POP_INVALID_PASSWORD"
+msgstr "Неправильный пароль"
+
+msgid "IDS_CST_OPT_CHANGE_PASSWORD"
+msgstr "Изменить пароль"
+
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-11-30 15:21+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: test.c:40
+msgid "Application template"
+msgstr ""
+
+#: test.c:41
+msgid "Click to exit"
+msgstr ""
+
+#. SLP_appfwk_set_window_size(480, 800);
+#: test.c:94
+msgid "FONT_NAME"
+msgstr ""
--- /dev/null
+msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED"
+msgstr "Gelen tüm aramalar engellendi"
+
+msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED"
+msgstr "Giden tüm aramalar engellendi"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS"
+msgstr "Arama yönlendirme etkin: Her zaman"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_NO_ANSWER"
+msgstr "Arama yönlendirme etkin: Cevap yokken"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_UNREACHABLE"
+msgstr "Arama yönlendirme etkin: Ulaşılamadığında"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY"
+msgstr "Arama yönlendirme etkin: Meşgulken"
+
+msgid "IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING"
+msgstr "Geçiş yaparken gelen arama engelleme"
+
+msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED"
+msgstr "Yurt için hariç uluslar arası gideni engelle"
+
+msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED"
+msgstr "Giden uluslararası aramalar engellendi"
+
+msgid "IDS_COM_POP_FOR_ALL_TELE_SERVICES_EXCEPT_SMS"
+msgstr "SMS hariç Tüm Tele hizmetleri için"
+
+msgid "IDS_CST_BODY_ALL_CALLS"
+msgstr "Tüm aramalar"
+
+msgid "IDS_CST_BODY_CALL_BARRING"
+msgstr "Arama engelleme"
+
+msgid "IDS_CST_BODY_CALL_DIVERTING"
+msgstr "Arama yönlendirme"
+
+msgid "IDS_CST_BODY_CALL_WAITING"
+msgstr "Arama bekletme"
+
+msgid "IDS_CST_BODY_ENTER_NUMBER"
+msgstr "Numarayı girin"
+
+msgid "IDS_CST_BODY_FAX"
+msgstr "Faks"
+
+msgid "IDS_CST_HEADER_CONDITIONAL"
+msgstr "Koşullu"
+
+msgid "IDS_CST_POP_ALL_ASYNCHRONOUS_DATA"
+msgstr "Tüm asenkron veriler"
+
+msgid "IDS_CST_POP_ALL_BEARER_SERVICES"
+msgstr "Tüm taşıyıcı servisleri"
+
+msgid "IDS_CST_POP_ALL_DATA_SERVICES"
+msgstr "Tüm veri servisleri"
+
+msgid "IDS_CST_POP_ALL_PADCA_SERVICES"
+msgstr "Tüm PADCA servisleri"
+
+msgid "IDS_CST_POP_ALL_PDS_SERVICES"
+msgstr "Tüm PDS servisleri"
+
+msgid "IDS_CST_POP_ALL_PLMN_BEARERS"
+msgstr "Tüm PLMN taşıyıcıları"
+
+msgid "IDS_CST_POP_ALL_SERVICES"
+msgstr "Tüm servisler"
+
+msgid "IDS_CST_POP_ALL_SYNCHRONOUS_SERVICES"
+msgstr "Tüm senkron servisler"
+
+msgid "IDS_CST_POP_ALL_TELECOM_SERVICES"
+msgstr "Tüm telekom servisleri"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING"
+msgstr "Arama sırasında cevaplayan numara gösterilmez"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING"
+msgstr "Arama sırasında cevaplayan numara gösterilir"
+
+msgid "IDS_CST_POP_ASYNCHRONOUS_DATA_SERVICES"
+msgstr "Asenk. veri servisleri"
+
+msgid "IDS_CST_POP_CALLER_ID_AVAILABLE"
+msgstr "Arayan kimliği var"
+
+msgid "IDS_CST_POP_CALLER_ID_HIDDEN"
+msgstr "Arayan kimliği gizli"
+
+msgid "IDS_CST_POP_CALLER_ID_RESTRICTED"
+msgstr "Arayan kimliği kısıtlı"
+
+msgid "IDS_CST_POP_CALLER_ID_SHOWN"
+msgstr "Arayan kimliği gösterildi"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS"
+msgstr "Arayan kişi kimliğim aramaları cevaplarken gönderilmez"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING"
+msgstr "Arayan kişi kimliği arama yaparken gönderilmez"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS"
+msgstr "Arayan kişi kimliğim aramaları cevaplarken gönderilir"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING"
+msgstr "Arayan kişi kimliğim arama yaparken gönderilir"
+
+msgid "IDS_CST_POP_PASSWORD_BLOCKED"
+msgstr "Şifre engellendi"
+
+msgid "IDS_CST_POP_REJECTED_BY_NETWORK"
+msgstr "Şebeke tarafından reddedildi"
+
+msgid "IDS_CST_POP_REQUESTING_ING"
+msgstr "İstek gönderiliyor..."
+
+msgid "IDS_CST_POP_SERVICE_NOT_AUTHORISED"
+msgstr "Servise izin verilmemiş"
+
+msgid "IDS_ST_POP_ALL_BARRING"
+msgstr "Tümünü engelleme"
+
+msgid "IDS_ST_POP_INCOMING_BARRING"
+msgstr "Gelen engellemeler"
+
+msgid "IDS_ST_POP_OUTGOING_BARRING"
+msgstr "Giden engelleme"
+
+msgid "IDS_CST_POP_SERVICE_UNAVAILABLE"
+msgstr "Servis Kullanılamıyor"
+
+msgid "IDS_CST_POP_INVALID_PASSWORD"
+msgstr "Yanlış şifre"
+
+msgid "IDS_CST_OPT_CHANGE_PASSWORD"
+msgstr "Şifre değiştir"
+
--- /dev/null
+#!/bin/sh
+
+PACKAGE=ciss
+SRCROOT=..
+POTFILES=POTFILES.in
+
+ALL_LINGUAS= am az be ca cs da de el en_CA en_GB es et fi fr hr hu it ja ko lv mk ml ms nb ne nl pa pl pt pt_BR ru rw sk sl sr sr@Latn sv ta tr uk vi zh_CN zh_TW
+#ALL_LINGUAS="en_US en_GB ja ko zh_CN"
+
+XGETTEXT=/usr/bin/xgettext
+MSGMERGE=/usr/bin/msgmerge
+
+echo -n "Make ${PACKAGE}.pot "
+if [ ! -e $POTFILES ] ; then
+ echo "$POTFILES not found"
+ exit 1
+fi
+
+$XGETTEXT --default-domain=${PACKAGE} --directory=${SRCROOT} \
+ --add-comments --keyword=_ --keyword=N_ --files-from=$POTFILES \
+&& test ! -f ${PACKAGE}.po \
+ || (rm -f ${PACKAGE}.pot && mv ${PACKAGE}.po ${PACKAGE}.pot)
+
+if [ $? -ne 0 ]; then
+ echo "error"
+ exit 1
+else
+ echo "done"
+fi
+
+for LANG in $ALL_LINGUAS; do
+ echo "$LANG : "
+
+ if [ ! -e $LANG.po ] ; then
+ sed 's/CHARSET/UTF-8/g' ${PACKAGE}.pot > ${LANG}.po
+ echo "${LANG}.po created"
+ else
+ if $MSGMERGE ${LANG}.po ${PACKAGE}.pot -o ${LANG}.new.po ; then
+ if cmp ${LANG}.po ${LANG}.new.po > /dev/null 2>&1; then
+ rm -f ${LANG}.new.po
+ else
+ if mv -f ${LANG}.new.po ${LANG}.po; then
+ echo ""
+ else
+ echo "msgmerge for $LANG.po failed: cannot move $LANG.new.po to $LANG.po" 1>&2
+ rm -f ${LANG}.new.po
+ exit 1
+ fi
+ fi
+ else
+ echo "msgmerge for $LANG failed!"
+ rm -f ${LANG}.new.po
+ fi
+ fi
+ echo ""
+done
+
--- /dev/null
+msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED"
+msgstr "禁止所有来电"
+
+msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED"
+msgstr "禁止全部拨出电话"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS"
+msgstr "激活呼叫转移:始终"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_NO_ANSWER"
+msgstr "激活呼叫转移:无应答"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_UNREACHABLE"
+msgstr "激活呼叫转移:无法接通"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY"
+msgstr "激活呼叫转移:遇忙"
+
+msgid "IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING"
+msgstr "漫游时呼入限制"
+
+msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED"
+msgstr "除本国外的国际呼出"
+
+msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED"
+msgstr "禁止拨打国际长途"
+
+msgid "IDS_COM_POP_FOR_ALL_TELE_SERVICES_EXCEPT_SMS"
+msgstr "用于除短信息以外的所有电信服务"
+
+msgid "IDS_CST_BODY_ALL_CALLS"
+msgstr "全部通话"
+
+msgid "IDS_CST_BODY_CALL_BARRING"
+msgstr "呼叫限制"
+
+msgid "IDS_CST_BODY_CALL_DIVERTING"
+msgstr "呼叫转移"
+
+msgid "IDS_CST_BODY_CALL_WAITING"
+msgstr "呼叫等待"
+
+msgid "IDS_CST_BODY_ENTER_NUMBER"
+msgstr "输入号码"
+
+msgid "IDS_CST_BODY_FAX"
+msgstr "传真"
+
+msgid "IDS_CST_HEADER_CONDITIONAL"
+msgstr "有条件的"
+
+msgid "IDS_CST_POP_ALL_ASYNCHRONOUS_DATA"
+msgstr "全部同步数据"
+
+msgid "IDS_CST_POP_ALL_BEARER_SERVICES"
+msgstr "全部承载业务"
+
+msgid "IDS_CST_POP_ALL_DATA_SERVICES"
+msgstr "全部数据业务"
+
+msgid "IDS_CST_POP_ALL_PADCA_SERVICES"
+msgstr "全部 PADCA 服务"
+
+msgid "IDS_CST_POP_ALL_PDS_SERVICES"
+msgstr "全部 PDS 服务"
+
+msgid "IDS_CST_POP_ALL_PLMN_BEARERS"
+msgstr "全部PLMN承载器"
+
+msgid "IDS_CST_POP_ALL_SERVICES"
+msgstr "全部业务"
+
+msgid "IDS_CST_POP_ALL_SYNCHRONOUS_SERVICES"
+msgstr "全部同步服务"
+
+msgid "IDS_CST_POP_ALL_TELECOM_SERVICES"
+msgstr "全部电信服务"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING"
+msgstr "通话时,不显示应答号码"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING"
+msgstr "通话时,显示应答号码"
+
+msgid "IDS_CST_POP_ASYNCHRONOUS_DATA_SERVICES"
+msgstr "异步数据服务"
+
+msgid "IDS_CST_POP_CALLER_ID_AVAILABLE"
+msgstr "来电者显示图像可用"
+
+msgid "IDS_CST_POP_CALLER_ID_HIDDEN"
+msgstr "来电者显示图像已隐藏"
+
+msgid "IDS_CST_POP_CALLER_ID_RESTRICTED"
+msgstr "来电者显示图像已限制"
+
+msgid "IDS_CST_POP_CALLER_ID_SHOWN"
+msgstr "来电者显示图像已显示"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS"
+msgstr "接听来电时将发送我的呼叫者 ID"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING"
+msgstr "拨打电话时未发送我的来电者显示图像"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS"
+msgstr "应答来电时将发送我的来电者显示图像"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING"
+msgstr "拨打电话时将发送我的来电者显示图像"
+
+msgid "IDS_CST_POP_PASSWORD_BLOCKED"
+msgstr "密码已锁定"
+
+msgid "IDS_CST_POP_REJECTED_BY_NETWORK"
+msgstr "因网络问题而被拒绝"
+
+msgid "IDS_CST_POP_REQUESTING_ING"
+msgstr "要求中..."
+
+msgid "IDS_CST_POP_SERVICE_NOT_AUTHORISED"
+msgstr "服务未授权"
+
+msgid "IDS_ST_POP_ALL_BARRING"
+msgstr "呼叫限制"
+
+msgid "IDS_ST_POP_INCOMING_BARRING"
+msgstr "来电禁止"
+
+msgid "IDS_ST_POP_OUTGOING_BARRING"
+msgstr "拨号禁止"
+
+msgid "IDS_CST_POP_SERVICE_UNAVAILABLE"
+msgstr "服务无法正常提供"
+
+msgid "IDS_CST_POP_INVALID_PASSWORD"
+msgstr "无效密码"
+
+msgid "IDS_CST_OPT_CHANGE_PASSWORD"
+msgstr "更改密码"
+
--- /dev/null
+msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED"
+msgstr "已限制全部來電"
+
+msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED"
+msgstr "已限制所有撥出電話"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS"
+msgstr "轉駁來電:全部轉駁"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_NO_ANSWER"
+msgstr "轉駁來電:無人接聽"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_UNREACHABLE"
+msgstr "來電轉駁:無法接通"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY"
+msgstr "來電轉駁:線路繁忙"
+
+msgid "IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING"
+msgstr "漫遊時來電限制"
+
+msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED"
+msgstr "限制撥出國際電話(本地除外)"
+
+msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED"
+msgstr "已限制撥出國際長途電話"
+
+msgid "IDS_COM_POP_FOR_ALL_TELE_SERVICES_EXCEPT_SMS"
+msgstr "適用於全部電話服務(SMS 除外)"
+
+msgid "IDS_CST_BODY_ALL_CALLS"
+msgstr "全部通話"
+
+msgid "IDS_CST_BODY_CALL_BARRING"
+msgstr "通話限制"
+
+msgid "IDS_CST_BODY_CALL_DIVERTING"
+msgstr "來電轉駁"
+
+msgid "IDS_CST_BODY_CALL_WAITING"
+msgstr "來電待接"
+
+msgid "IDS_CST_BODY_ENTER_NUMBER"
+msgstr "輸入號碼"
+
+msgid "IDS_CST_BODY_FAX"
+msgstr "傳真"
+
+msgid "IDS_CST_HEADER_CONDITIONAL"
+msgstr "條件性的"
+
+msgid "IDS_CST_POP_ALL_ASYNCHRONOUS_DATA"
+msgstr "全部非同步數據"
+
+msgid "IDS_CST_POP_ALL_BEARER_SERVICES"
+msgstr "全部承載服務"
+
+msgid "IDS_CST_POP_ALL_DATA_SERVICES"
+msgstr "全部數據服務"
+
+msgid "IDS_CST_POP_ALL_PADCA_SERVICES"
+msgstr "全部 PADCA 服務"
+
+msgid "IDS_CST_POP_ALL_PDS_SERVICES"
+msgstr "全部 PDS 服務"
+
+msgid "IDS_CST_POP_ALL_PLMN_BEARERS"
+msgstr "全部 PLMN 承載器"
+
+msgid "IDS_CST_POP_ALL_SERVICES"
+msgstr "全部服務"
+
+msgid "IDS_CST_POP_ALL_SYNCHRONOUS_SERVICES"
+msgstr "全部同步服務"
+
+msgid "IDS_CST_POP_ALL_TELECOM_SERVICES"
+msgstr "全部電訊服務"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING"
+msgstr "通話時不顯示接聽電話號碼"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING"
+msgstr "通話時顯示接聽電話號碼"
+
+msgid "IDS_CST_POP_ASYNCHRONOUS_DATA_SERVICES"
+msgstr "非同步數據服務"
+
+msgid "IDS_CST_POP_CALLER_ID_AVAILABLE"
+msgstr "來電顯示可用"
+
+msgid "IDS_CST_POP_CALLER_ID_HIDDEN"
+msgstr "已隱藏來電顯示"
+
+msgid "IDS_CST_POP_CALLER_ID_RESTRICTED"
+msgstr "已限制來電顯示"
+
+msgid "IDS_CST_POP_CALLER_ID_SHOWN"
+msgstr "已顯示來電顯示"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS"
+msgstr "我的來電顯示不會在接聽來電時送出"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING"
+msgstr "我的來電顯示不會在撥出電話時送出"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS"
+msgstr "我的來電顯示將在接聽來電時送出"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING"
+msgstr "我的來電顯示將在撥出電話時送出"
+
+msgid "IDS_CST_POP_PASSWORD_BLOCKED"
+msgstr "已封鎖密碼"
+
+msgid "IDS_CST_POP_REJECTED_BY_NETWORK"
+msgstr "被網絡拒絕"
+
+msgid "IDS_CST_POP_REQUESTING_ING"
+msgstr "正在請求..."
+
+msgid "IDS_CST_POP_SERVICE_NOT_AUTHORISED"
+msgstr "服務未授權"
+
+msgid "IDS_ST_POP_ALL_BARRING"
+msgstr "全部限制"
+
+msgid "IDS_ST_POP_INCOMING_BARRING"
+msgstr "來電限制"
+
+msgid "IDS_ST_POP_OUTGOING_BARRING"
+msgstr "撥出限制"
+
+msgid "IDS_CST_POP_SERVICE_UNAVAILABLE"
+msgstr "無可用服務"
+
+msgid "IDS_CST_POP_INVALID_PASSWORD"
+msgstr "密碼無效"
+
+msgid "IDS_CST_OPT_CHANGE_PASSWORD"
+msgstr "更改密碼"
+
--- /dev/null
+msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED"
+msgstr "已限制所有來電"
+
+msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED"
+msgstr "已阻止所有撥出電話"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS"
+msgstr "轉移呼叫:永遠"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_NO_ANSWER"
+msgstr "轉移呼叫:無人接聽"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_UNREACHABLE"
+msgstr "轉移呼叫:無法接通"
+
+msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY"
+msgstr "轉移呼叫:忙線時"
+
+msgid "IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING"
+msgstr "漫遊時限制來電"
+
+msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED"
+msgstr "限制撥出國際電話(本國除外)"
+
+msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED"
+msgstr "已限制撥出國際電話"
+
+msgid "IDS_COM_POP_FOR_ALL_TELE_SERVICES_EXCEPT_SMS"
+msgstr "適用於所有電信服務(SMS 除外)"
+
+msgid "IDS_CST_BODY_ALL_CALLS"
+msgstr "全部通話"
+
+msgid "IDS_CST_BODY_CALL_BARRING"
+msgstr "通話限制"
+
+msgid "IDS_CST_BODY_CALL_DIVERTING"
+msgstr "呼叫轉移"
+
+msgid "IDS_CST_BODY_CALL_WAITING"
+msgstr "來電等待"
+
+msgid "IDS_CST_BODY_ENTER_NUMBER"
+msgstr "輸入號碼"
+
+msgid "IDS_CST_BODY_FAX"
+msgstr "傳真"
+
+msgid "IDS_CST_HEADER_CONDITIONAL"
+msgstr "條件式"
+
+msgid "IDS_CST_POP_ALL_ASYNCHRONOUS_DATA"
+msgstr "所有非同步資料"
+
+msgid "IDS_CST_POP_ALL_BEARER_SERVICES"
+msgstr "所有承載者服務"
+
+msgid "IDS_CST_POP_ALL_DATA_SERVICES"
+msgstr "所有資料服務"
+
+msgid "IDS_CST_POP_ALL_PADCA_SERVICES"
+msgstr "所有 PADCA 服務"
+
+msgid "IDS_CST_POP_ALL_PDS_SERVICES"
+msgstr "所有 PDS 服務"
+
+msgid "IDS_CST_POP_ALL_PLMN_BEARERS"
+msgstr "所有 PLMN 承載者"
+
+msgid "IDS_CST_POP_ALL_SERVICES"
+msgstr "所有服務"
+
+msgid "IDS_CST_POP_ALL_SYNCHRONOUS_SERVICES"
+msgstr "所有同步服務"
+
+msgid "IDS_CST_POP_ALL_TELECOM_SERVICES"
+msgstr "所有電訊服務"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING"
+msgstr "通話時不顯示接聽電話號碼"
+
+msgid "IDS_CST_POP_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING"
+msgstr "通話時顯示接聽電話號碼"
+
+msgid "IDS_CST_POP_ASYNCHRONOUS_DATA_SERVICES"
+msgstr "非同步資料服務"
+
+msgid "IDS_CST_POP_CALLER_ID_AVAILABLE"
+msgstr "來電顯示可用"
+
+msgid "IDS_CST_POP_CALLER_ID_HIDDEN"
+msgstr "已隱藏來電顯示"
+
+msgid "IDS_CST_POP_CALLER_ID_RESTRICTED"
+msgstr "已限制來電顯示"
+
+msgid "IDS_CST_POP_CALLER_ID_SHOWN"
+msgstr "已顯示來電顯示"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS"
+msgstr "不在接聽來電時送出我的來電顯示"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING"
+msgstr "我的來電顯示不在撥打電話時送出"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS"
+msgstr "我的來電顯示將在接聽來電時送出"
+
+msgid "IDS_CST_POP_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING"
+msgstr "我的來電顯示將在撥打電話時送出"
+
+msgid "IDS_CST_POP_PASSWORD_BLOCKED"
+msgstr "已封鎖密碼"
+
+msgid "IDS_CST_POP_REJECTED_BY_NETWORK"
+msgstr "已遭網路拒絕"
+
+msgid "IDS_CST_POP_REQUESTING_ING"
+msgstr "正在請求..."
+
+msgid "IDS_CST_POP_SERVICE_NOT_AUTHORISED"
+msgstr "服務未經授權"
+
+msgid "IDS_ST_POP_ALL_BARRING"
+msgstr "全部限制"
+
+msgid "IDS_ST_POP_INCOMING_BARRING"
+msgstr "限制來電"
+
+msgid "IDS_ST_POP_OUTGOING_BARRING"
+msgstr "限制撥出"
+
+msgid "IDS_CST_POP_SERVICE_UNAVAILABLE"
+msgstr "無法使用服務"
+
+msgid "IDS_CST_POP_INVALID_PASSWORD"
+msgstr "密碼無效"
+
+msgid "IDS_CST_OPT_CHANGE_PASSWORD"
+msgstr "更改密碼"
+
--- /dev/null
+collections {
+group { name: "popup_progress";
+ parts {
+ part { name: "pad_t";
+ scale : 1;
+ mouse_events: 0;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ align: 0.5 0.0;
+ min: 0 14;
+ fixed: 0 1;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "pad_l";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "pad_r";
+ }
+ }
+ }
+ part { name: "pad_l";
+ scale: 1;
+ description { state: "default" 0.0;
+ min : 10 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ }
+ align: 0.0 0.0;
+ }
+ }
+ part { name: "pad_r";
+ scale: 1;
+ description { state: "default" 0.0;
+ min : 10 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 1.0 0.0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ }
+ align: 1.0 0.0;
+ }
+ }
+ part{ name:"elm.swallow.content";
+ type: SWALLOW;
+ scale : 1;
+ description { state: "default" 0.0;
+ min: 300 0;
+ align: 0.5 0.5;
+ fixed: 1 0;
+ rel1 {
+ relative: 0.5 1.0;
+ to: "pad_t";
+ }
+ rel2 {
+ relative: 0.5 0.0;
+ to: "pad_b";
+ }
+ }
+ }
+ part { name: "pad_b";
+ scale : 1;
+ mouse_events: 0;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ align: 0.5 1.0;
+ min: 0 90;
+ fixed: 0 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "pad_l";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "pad_r";
+ }
+ }
+ }
+
+ part { name: "elm.swallow.end";
+ type: SWALLOW;
+ scale : 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ align: 0.0 0.0;
+ fixed: 1 1;
+ rel1 {
+ relative: 0.0 0.0;
+ to: "pad_b";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to: "pad_b";
+ }
+ }
+ }
+
+ }
+}
+}
--- /dev/null
+/*
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * This file is part of <ciss>
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use it only in accordance
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability of the software,
+ * either express or implied, including but not limited to the implied warranties of merchantability,
+ * fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,
+ * modifying or distributing this software or its derivatives.
+ *
+ */
+
+#include "ciss-converter.h"
+
+static const sc_table_element_type sc_conversion_table_ss[] = {
+ {CISS_ENG_SC_CF, TAPI_SS_FORWARD_WHEN_ALL_FORWARDING_EV, TAPI_SS_TYPE_FORWARDING},
+ {CISS_ENG_SC_CFC, TAPI_SS_FORWARD_WHEN_ALL_CONDITIONAL_EV, TAPI_SS_TYPE_FORWARDING},
+ {CISS_ENG_SC_CFU, TAPI_SS_FORWARD_WHEN_UNCONDITIONAL_EV, TAPI_SS_TYPE_FORWARDING},
+ {CISS_ENG_SC_CFB, TAPI_SS_FORWARD_WHEN_BUSY_EV, TAPI_SS_TYPE_FORWARDING},
+ {CISS_ENG_SC_CFNRY, TAPI_SS_FORWARD_WHEN_NO_ANSWER_EV, TAPI_SS_TYPE_FORWARDING},
+ {CISS_ENG_SC_CFNRC, TAPI_SS_FORWARD_WHEN_NOT_REACHABLE_EV, TAPI_SS_TYPE_FORWARDING},
+ {CISS_ENG_SC_CLIP, TAPI_SS_CLI_CLIP, TAPI_SS_TYPE_IDENTIFICATION},
+ {CISS_ENG_SC_CLIR, TAPI_SS_CLI_CLIR, TAPI_SS_TYPE_IDENTIFICATION},
+ {CISS_ENG_SC_COLP, TAPI_SS_CLI_COLP, TAPI_SS_TYPE_IDENTIFICATION},
+ {CISS_ENG_SC_COLR, TAPI_SS_CLI_COLR, TAPI_SS_TYPE_IDENTIFICATION},
+ {CISS_ENG_SC_CNAP, TAPI_SS_CLI_CNAP, TAPI_SS_TYPE_IDENTIFICATION},
+ {CISS_ENG_SC_CW, 0, TAPI_SS_TYPE_WAITING},
+ {CISS_ENG_SC_B, TAPI_CALL_BARRING_ALL, TAPI_SS_TYPE_BARRING},
+ {CISS_ENG_SC_OB, TAPI_CALL_BARRING_OUTGOING, TAPI_SS_TYPE_BARRING},
+ {CISS_ENG_SC_IB, TAPI_CALL_BARRING_INCOMING, TAPI_SS_TYPE_BARRING},
+ {CISS_ENG_SC_BAOC, TAPI_CALL_BARRING_ALL_OUTGOING_CALLS, TAPI_SS_TYPE_BARRING},
+ {CISS_ENG_SC_BOIC, TAPI_CALL_BARRING_ALL_OUTGOING_INTERN_CALL, TAPI_SS_TYPE_BARRING},
+ {CISS_ENG_SC_BOICEXHC, TAPI_CALL_BARRING_ALL_OUTGOING_INTERN_CALL_EXCEPT, TAPI_SS_TYPE_BARRING},
+ {CISS_ENG_SC_BAIC, TAPI_CALL_BARRING_ALL_INCOMING_CALLS, TAPI_SS_TYPE_BARRING},
+ {CISS_ENG_SC_BICROAM, TAPI_CALL_BARRING_ALL_INCOMING_CALLS_ROAMING, TAPI_SS_TYPE_BARRING}
+};
+
+/* table for conversion between local basic service group (BSG)
+ and tapi BSG.
+
+ elements represent - local BSG value,
+ BSG code : basic service code (BS code) or
+ tele service code (TS code)
+ tapi BSG value
+
+*/
+
+/* need to find mapping with the call type or forward type for call barring and call diverting else not required */
+static const bsg_table_element_type bsg_conversion_table[MAX_BSG_ENTRY] = {
+ {CISS_ENG_BSG_ALL, 0, TAPI_SS_TS_ALL_TELE_AND_BEARER_SERVICES},
+ {CISS_ENG_BSG_ALL_TS, TS_CODE, TAPI_SS_TS_ALL_TELESERVICES},
+ {CISS_ENG_BSG_TELEPHONY, TS_CODE, TAPI_SS_TS_ALL_SPEECH },
+ /* ALS_SUPPORT : added mapping for auxilliary telephony */
+#ifdef FEATURE_SAMSUNG_ALS
+ {CISS_ENG_BSG_AUX_TELEPHONY, TS_CODE, TAPI_SS_TS_AUX_VOICE},
+#endif
+ {CISS_ENG_BSG_ALL_DATA, TS_CODE, TAPI_SS_TS_ALL_DATA_TELESERVICES},
+ {CISS_ENG_BSG_FAX, TS_CODE, TAPI_SS_TS_FACS},
+ {CISS_ENG_BSG_SMS, TS_CODE, TAPI_SS_TS_SMS},
+ {CISS_ENG_BSG_ALL_TELE_EX_SMS, TS_CODE, TAPI_SS_TS_ALL_TELESERVICES_EXCEPT_SMS},
+ {CISS_ENG_BSG_PLMN_TELE_ALL, TS_CODE, TAPI_SS_TS_ALL_PLMN_SPEC_TELE },
+ {CISS_ENG_BSG_PLMN_TELE_1, TS_CODE, TAPI_SS_TS_PLMN_SPEC_TELE_1},
+ {CISS_ENG_BSG_PLMN_TELE_2, TS_CODE, TAPI_SS_TS_PLMN_SPEC_TELE_2},
+ {CISS_ENG_BSG_PLMN_TELE_3, TS_CODE, TAPI_SS_TS_PLMN_SPEC_TELE_3},
+ {CISS_ENG_BSG_PLMN_TELE_4, TS_CODE, TAPI_SS_TS_PLMN_SPEC_TELE_4},
+ {CISS_ENG_BSG_PLMN_TELE_5, TS_CODE, TAPI_SS_TS_PLMN_SPEC_TELE_5},
+ {CISS_ENG_BSG_PLMN_TELE_6, TS_CODE, TAPI_SS_TS_PLMN_SPEC_TELE_6},
+ {CISS_ENG_BSG_PLMN_TELE_7, TS_CODE, TAPI_SS_TS_PLMN_SPEC_TELE_7},
+ {CISS_ENG_BSG_PLMN_TELE_8, TS_CODE, TAPI_SS_TS_PLMN_SPEC_TELE_8},
+ {CISS_ENG_BSG_PLMN_TELE_9, TS_CODE, TAPI_SS_TS_PLMN_SPEC_TELE_9},
+ {CISS_ENG_BSG_PLMN_TELE_A, TS_CODE, TAPI_SS_TS_PLMN_SPEC_TELE_A},
+ {CISS_ENG_BSG_PLMN_TELE_B, TS_CODE, TAPI_SS_TS_PLMN_SPEC_TELE_B},
+ {CISS_ENG_BSG_PLMN_TELE_C, TS_CODE, TAPI_SS_TS_PLMN_SPEC_TELE_C},
+ {CISS_ENG_BSG_PLMN_TELE_D, TS_CODE, TAPI_SS_TS_PLMN_SPEC_TELE_D},
+ {CISS_ENG_BSG_PLMN_TELE_E, TS_CODE, TAPI_SS_TS_PLMN_SPEC_TELE_E},
+ {CISS_ENG_BSG_PLMN_TELE_F, TS_CODE, TAPI_SS_TS_PLMN_SPEC_TELE_F},
+ {CISS_ENG_BSG_ALL_BS, BS_CODE, TAPI_SS_BS_ALL_BEARER_SERVICES},
+ {CISS_ENG_BSG_ALL_ASYNC, BS_CODE, TAPI_SS_BS_ALL_ASYNCHRONOUS},
+ {CISS_ENG_BSG_ALL_SYNC, BS_CODE, TAPI_SS_BS_ALL_SYNCHRONOUS},
+ {CISS_ENG_BSG_ALL_DC_SYNC, BS_CODE, TAPI_SS_BS_DATA_CIRCUIT_SYNC},
+ {CISS_ENG_BSG_ALL_DC_ASYNC, BS_CODE, TAPI_SS_BS_DATA_CIRCUIT_ASYNC},
+ {CISS_ENG_BSG_ALL_DED_PACKET, BS_CODE, TAPI_SS_BS_DATA_ALL_PDS},
+ {CISS_ENG_BSG_ALL_DED_PAD, BS_CODE, TAPI_SS_BS_ALL_DATA_PADCA},
+ {CISS_ENG_BSG_PLMN_BEAR_ALL, BS_CODE, TAPI_SS_BS_ALL_PLMN_SPEC_BS},
+ {CISS_ENG_BSG_PLMN_BEAR_1, BS_CODE, TAPI_SS_BS_PLMN_SPEC_TELE_1},
+ {CISS_ENG_BSG_PLMN_BEAR_2, BS_CODE, TAPI_SS_BS_PLMN_SPEC_TELE_2},
+ {CISS_ENG_BSG_PLMN_BEAR_3, BS_CODE, TAPI_SS_BS_PLMN_SPEC_TELE_3},
+ {CISS_ENG_BSG_PLMN_BEAR_4, BS_CODE, TAPI_SS_BS_PLMN_SPEC_TELE_4},
+ {CISS_ENG_BSG_PLMN_BEAR_5, BS_CODE, TAPI_SS_BS_PLMN_SPEC_TELE_5},
+ {CISS_ENG_BSG_PLMN_BEAR_6, BS_CODE, TAPI_SS_BS_PLMN_SPEC_TELE_6},
+ {CISS_ENG_BSG_PLMN_BEAR_7, BS_CODE, TAPI_SS_BS_PLMN_SPEC_TELE_7},
+ {CISS_ENG_BSG_PLMN_BEAR_8, BS_CODE, TAPI_SS_BS_PLMN_SPEC_TELE_8},
+ {CISS_ENG_BSG_PLMN_BEAR_9, BS_CODE, TAPI_SS_BS_PLMN_SPEC_TELE_9},
+ {CISS_ENG_BSG_PLMN_BEAR_A, BS_CODE, TAPI_SS_BS_PLMN_SPEC_TELE_A},
+ {CISS_ENG_BSG_PLMN_BEAR_B, BS_CODE, TAPI_SS_BS_PLMN_SPEC_TELE_B},
+ {CISS_ENG_BSG_PLMN_BEAR_C, BS_CODE, TAPI_SS_BS_PLMN_SPEC_TELE_C},
+ {CISS_ENG_BSG_PLMN_BEAR_D, BS_CODE, TAPI_SS_BS_PLMN_SPEC_TELE_C},
+ {CISS_ENG_BSG_PLMN_BEAR_E, BS_CODE, TAPI_SS_BS_PLMN_SPEC_TELE_D},
+ {CISS_ENG_BSG_PLMN_BEAR_F, BS_CODE, TAPI_SS_BS_PLMN_SPEC_TELE_F}
+};
+
+int _ciss_convert_bsg_to_tapi_bsg(char *local_bsg, TelSsTeleService_t *tapi_bsg)
+{
+ int valid_bsg = false;
+
+ int n = 0;
+ int local_bsg_len =0;
+
+ local_bsg_len = strlen(local_bsg);
+ if (local_bsg_len > MAX_BSG_LEN)
+ return false;
+
+ DBG("\n [CISS-ENGINE] local_bsg : %s", local_bsg);
+ while (n < MAX_BSG_ENTRY) {\r
+ DBG("\n [CISS-ENGINE] n : %d", n);
+ if (!strncmp(bsg_conversion_table[n].local_bsg, local_bsg, MAX_SC_LEN)) {
+ DBG("\n [CISS-ENGINE] bsg_conversion_table[n].local_bsg : %s", bsg_conversion_table[n].local_bsg);
+ *tapi_bsg = bsg_conversion_table[n].tapi_bsg_code;
+ valid_bsg = TRUE;
+ break;
+ }
+ n++;
+ }
+ DBG("\n [CISS-ENGINE] end _ciss_convert_bsg_to_tapi_bsg()");
+ return(valid_bsg);
+}
+
+int _ciss_convert_sc_to_tapi_flavor(char *sc, unsigned char *tapi_flavor, unsigned char *ss_type)
+{
+ int valid_sc = false;
+
+ int n = 0;
+ DBG("\n [CISS-ENGINE] sc : %s", sc);
+ while (n < MAX_SC_ENTRY) {
+ if (!strncmp(sc_conversion_table_ss[n].local_sc, sc, MAX_SC_LEN)) {
+ DBG("\n [CISS-ENGINE] sc_conversion_table_ss[n].local_sc : %s", sc_conversion_table_ss[n].local_sc);
+ *tapi_flavor = sc_conversion_table_ss[n].tapi_flavor;
+ *ss_type = sc_conversion_table_ss[n].ss_type;
+ valid_sc = TRUE;
+ break;
+ }
+ n++;
+ }
+ return(valid_sc);
+}
+
+int _ciss_get_tapi_forward_type(TelSsTeleService_t TelecommSvc, TelSsForwardType_t *pForwardType)
+{
+ switch (TelecommSvc) {
+ case TAPI_SS_TS_ALL_SPEECH:
+ *pForwardType = TAPI_CS_FORWARD_TYPE_VOICE_EV;
+ DBG("\n [CISS-ENGINE] ********TAPI_SS_TS_ALL_SPEECH\n");
+ break;
+ case TAPI_SS_TS_ALL_TELESERVICES:
+ *pForwardType = TAPI_CS_FORWARD_TYPE_ALL_TELE;
+ DBG("\n [CISS-ENGINE] ********TAPI_SS_TS_ALL_TELESERVICES\n");
+ break;
+ case TAPI_SS_TS_FACS:
+ *pForwardType = TAPI_CS_FORWARD_TYPE_FAX_EV;
+ break;
+ case TAPI_SS_TS_ALL_TELE_AND_BEARER_SERVICES:
+ *pForwardType = TAPI_CS_FORWARD_TYPE_ALL_TELE_BEARER;
+ break;
+ case TAPI_SS_BS_ALL_ASYNCHRONOUS:
+ *pForwardType = TAPI_CS_FORWARD_TYPE_ALL_ASYNC_EV;
+ break;
+ case TAPI_SS_BS_ALL_SYNCHRONOUS:
+ *pForwardType = TAPI_CS_FORWARD_TYPE_ALL_SYNC_EV;
+ break;
+ case TAPI_SS_BS_ALL_BEARER_SERVICES:
+ case TAPI_SS_BS_DATA_CIRCUIT_SYNC:
+ *pForwardType = TAPI_CS_FORWARD_TYPE_DATA_EV;
+ DBG("\n [CISS-ENGINE] ********TAPI_SS_BS_DATA_CIRCUIT_SYNC\n");
+ break;
+ case TAPI_SS_TS_SMS:
+ *pForwardType = TAPI_CS_FORWARD_TYPE_ALL_SYNC_EV;
+ break;
+ default:
+ DBG("\n [CISS-ENGINE] _ciss_get_tapi_forward_type:undefined =%d\n", TelecommSvc);
+ *pForwardType = TAPI_CS_FORWARD_TYPE_ALL_TELE_BEARER;
+ break;
+ }
+
+ DBG("\n [CISS-ENGINE] TelecommSvc = %d, pForwardType= %d\n", TelecommSvc, *pForwardType);
+ return TRUE;
+}
+
+int _ciss_get_tapi_call_type(TelSsTeleService_t TelecommSvc, TelSsCallType_t *pCallType)
+{
+ switch (TelecommSvc) {
+ case TAPI_SS_TS_ALL_SPEECH: /* Voice */
+ *pCallType = TAPI_CALL_TYPE_VOICE_EV;
+ DBG("\n [CISS-ENGINE] ********TAPI_SS_TS_ALL_SPEECH\n");
+ break;
+ case TAPI_SS_TS_ALL_TELESERVICES:
+ *pCallType = TAPI_CALL_TYPE_ALL_TELE;
+ DBG("\n [CISS-ENGINE] ********TAPI_SS_TS_ALL_TELESERVICES\n");
+ break;
+ case TAPI_SS_TS_ALL_DATA_TELESERVICES: /* Data */
+ *pCallType = TAPI_CALL_TYPE_DATA_EV;
+ break;
+ case TAPI_SS_TS_FACS: /* Fax */
+ *pCallType = TAPI_CALL_TYPE_FAX_EV;
+ break;
+
+ case TAPI_SS_TS_SMS: /* SMS */
+ *pCallType = TAPI_CALL_TYPE_SHORT_MESS_EV;
+ break;
+ case TAPI_SS_BS_ALL_ASYNCHRONOUS:
+ *pCallType = TAPI_CALL_TYPE_ALL_ASYNC_EV;
+ break;
+ case TAPI_SS_BS_ALL_SYNCHRONOUS:
+ *pCallType = TAPI_CALL_TYPE_ALL_SYNC_EV;
+ break;
+ case TAPI_SS_BS_ALL_BEARER_SERVICES: /* Video */
+ case TAPI_SS_BS_DATA_CIRCUIT_SYNC:
+ *pCallType = TAPI_CALL_TYPE_DATA_CIRCUIT_SYNC_EV;
+ DBG("\n [CISS-ENGINE] ********TAPI_SS_BS_DATA_CIRCUIT_SYNC\n");
+ break;
+ case TAPI_SS_TS_ALL_TELE_AND_BEARER_SERVICES: /* ALL */
+ *pCallType = TAPI_CALL_TYPE_ALL_TELE_BEARER;
+ break;
+ default:
+ DBG("\n [CISS-ENGINE] _ciss_get_tapi_call_type:undefined =%d\n", TelecommSvc);
+ *pCallType = TAPI_CALL_TYPE_ALL_TELE_BEARER;
+ break;
+ }
+ return TRUE;
+}
+
+int _ciss_get_error_from_tapi_error(ciss_err_t *ciss_err, TelSsCause_t tapi_err)
+{
+ DBG("\n [CISS-ENGINE] _ciss_get_error_from_tapi_error:defined =%x\n", tapi_err);
+ switch (tapi_err) {
+ case TAPI_SS_UNKNOWNSUBSCRIBER:
+ *ciss_err = CISS_ERR_UNKNOWN_SUBSCRIBER;
+ break;
+ case TAPI_SS_BEARERSERVICENOTPROVISIONED:
+ *ciss_err = CISS_ERR_BEARER_NOT_PROVISIONED;
+ break;
+ case TAPI_SS_TELESERVICENOTPROVISIONED:
+ *ciss_err = CISS_ERR_TELESERVICE_NOT_PROVISIONED;
+ break;
+ case TAPI_SS_CALLBARRED:
+ *ciss_err = CISS_ERR_CALL_BARRED;
+ break;
+ case TAPI_SS_ILLEGALSSOPERATION:
+ *ciss_err = CISS_ERR_ILLEGAL_SS_OPER;
+ break;
+ case TAPI_SS_ERRORSTATUS:
+ *ciss_err = CISS_ERR_ERR_STATUS;
+ break;
+ case TAPI_SS_NOTAVAILABLE:
+ *ciss_err = CISS_ERR_NOT_AVAIL;
+ break;
+ case TAPI_SS_SUBSCRIPTIONVIOLATION:
+ *ciss_err = CISS_ERR_SUBSCRIPTION_VIOLATION;
+ break;
+ case TAPI_SS_INCOMPATIBILITY:
+ *ciss_err = CISS_ERR_INCOMPATIBILITY;
+ break;
+ case TAPI_SS_FACILITYNOTSUPPORTED:
+ *ciss_err = CISS_ERR_FACILITY_NOT_SUPPORT;
+ break;
+ case TAPI_SS_SYSTEMFAILURE:
+ *ciss_err = CISS_ERR_SYS_FAILURE;
+ break;
+ case TAPI_SS_DATAMISSING:
+ *ciss_err = CISS_ERR_DATA_MISSING;
+ break;
+ case TAPI_SS_UNEXPECTEDDATAVALUE:
+ *ciss_err = CISS_ERR_UNEXPECTED_DATA;
+ break;
+ case TAPI_SS_MAXNOMPTYEXCEEDED:
+ *ciss_err = CISS_ERR_MPTY_PARTICIPANTS_EXCEED;
+ break;
+ case TAPI_SS_RESOURCESNOTAVAILABLE:
+ *ciss_err = CISS_ERR_RESOURCE_NOT_AVAIL;
+ break;
+ case TAPI_SS_PWREGISTRATIONFAILURE:
+ *ciss_err = CISS_ERR_PW_REGIST_FAIL;
+ break;
+ case TAPI_SS_NEGATIVEPWCHECK:
+ *ciss_err = CISS_ERR_NEGATIVE_PW_CHECK;
+ break;
+ case TAPI_SS_NUMBEROFPWATTEMPTSVIOLATION:
+ *ciss_err = CISS_ERR_PW_ATTEMPS_VIOLATION;
+ break;
+ default:
+ DBG("\n [CISS-ENGINE] _ciss_get_error_from_tapi_error:undefined =%x\n", tapi_err);
+ *ciss_err = CISS_ERR_UNKNOWN;
+ break;
+ }
+ return TRUE;
+}
+
+int _ciss_get_tapi_ussd_resp_type(ciss_ussd_response_type_t resp_type, TelSsUssdRespType_t *pTapiRespType)
+{
+ DBG("\n [CISS-ENGINE] _ciss_get_tapi_ussd_resp_type:defined =%d\n", resp_type);
+ switch (resp_type) {
+ case CISS_USSD_RES_UNKNOWN_ALPHABET:
+ *pTapiRespType = TAPI_USSD_RES_UNKNOWN_ALPHABET;
+ break;
+ case CISS_USSD_RES_DISPL_BUSY:
+ *pTapiRespType = TAPI_USSD_RES_DISPL_BUSY;
+ break;
+ case CISS_USSD_RES_OK:
+ *pTapiRespType = TAPI_USSD_RES_OK;
+ break;
+ case CISS_USSD_RES_NONE:
+ *pTapiRespType = TAPI_USSD_RES_NONE;
+ break;
+ default:
+ DBG("\n [CISS-ENGINE] _ciss_get_tapi_ussd_resp_type:undefined =%d\n", resp_type);
+ break;
+ }
+ return TRUE;
+}
+
+int _ciss_get_tapi_ussd_ind_type(ciss_ussd_ind_type_t ind_type, TelSsUssdIndType_t *pTapiIndType)
+{
+ DBG("\n [CISS-ENGINE] _ciss_get_tapi_ussd_ind_type:defined =%d\n", ind_type);
+ switch (ind_type) {
+ case CISS_USSD_NOTIFY:
+ *pTapiIndType = TAPI_USSD_IND_NOTIFY;
+ break;
+ case CISS_USSD_IND_NO_ACTION_REQUIRE:
+ *pTapiIndType = TAPI_USSD_IND_NO_ACTION_REQUIRE;
+ break;
+ case CISS_USSD_IND_ACTION_REQUIRE:
+ *pTapiIndType = TAPI_USSD_IND_ACTION_REQUIRE;
+ break;
+ case CISS_USSD_TERMINATED_BY_NET:
+ *pTapiIndType = TAPI_USSD_IND_TERMINATED_BY_NET;
+ break;
+ case CISS_USSD_OTHER_CLIENT:
+ *pTapiIndType = TAPI_USSD_IND_OTHER_CLIENT;
+ break;
+ case CISS_USSD_NOT_SUPPORT:
+ *pTapiIndType = TAPI_USSD_IND_NOT_SUPPORT;
+ break;
+ case CISS_USSD_TIME_OUT:
+ *pTapiIndType = TAPI_USSD_IND_TIME_OUT;
+ break;
+ default:
+ DBG("\n [CISS-ENGINE] _ciss_get_tapi_ussd_ind_type:undefined =%d\n", ind_type);
+ break;
+ }
+ return TRUE;
+}
+
+int _ciss_get_telecomm_svc(TelSsTeleService_t in_teleservice, ciss_telecomm_svc_t *out_teleservice)
+{
+ switch (in_teleservice) {
+#ifdef _SHP_CPHS
+ case TAPI_SS_TS_ALL_SPEECH:
+ *out_teleservice = CISS_TELECOMM_SVC_VOICE;
+ break;
+ case TAPI_SS_TS_AUX_VOICE:
+ *out_teleservice = CISS_TELECOMM_SVC_AUX_VOICE:
+ break;
+#else
+ case TAPI_SS_TS_ALL_SPEECH:
+ *out_teleservice = CISS_TELECOMM_SVC_VOICE;
+ break;
+#endif
+
+ case TAPI_SS_TS_FACS:
+ *out_teleservice = CISS_TELECOMM_SVC_FAX;
+ break;
+ case TAPI_SS_TS_SMS:
+ *out_teleservice = CISS_TELECOMM_SVC_SMS;
+ break;
+ case TAPI_SS_BS_DATA_CIRCUIT_SYNC:
+ *out_teleservice = CISS_TELECOMM_SVC_ALL_CS_SYNC;
+ break;
+ case TAPI_SS_ALL_TELE_BEARER:
+ case TAPI_SS_TS_ALL_TELE_AND_BEARER_SERVICES:
+ *out_teleservice = CISS_TELECOMM_SVC_ALL_TELE_BEARER;
+ break;
+ case TAPI_SS_TS_ALL_TELESERVICES:
+ *out_teleservice = CISS_TELECOMM_SVC_ALL_TELE;
+ break;
+ case TAPI_SS_TS_ALL_DATA_TELESERVICES:
+ *out_teleservice = CISS_TELECOMM_SVC_ALL_DATA_TELE;
+ break;
+ case TAPI_SS_TS_ALL_TELESERVICES_EXCEPT_SMS:
+ *out_teleservice = CISS_TELECOMM_SVC_ALL_TELE_EXPT_SMS;
+ break;
+ case TAPI_SS_TS_ALL_PLMN_SPEC_TELE:
+ *out_teleservice = CISS_TELECOMM_SVC_PLMN_TELE_ALL;
+ break;
+ case TAPI_SS_BS_ALL_BEARER_SERVICES:
+ *out_teleservice = CISS_TELECOMM_SVC_ALL_BEARER;
+ break;
+ case TAPI_SS_BS_ALL_DATA_CDA:
+ *out_teleservice = CISS_TELECOMM_SVC_ALL_DATA_CDA;
+ break;
+ case TAPI_SS_BS_ALL_SYNCHRONOUS:
+ *out_teleservice = CISS_TELECOMM_SVC_ALL_SYNC;
+ break;
+ case TAPI_SS_BS_ALL_ASYNCHRONOUS:
+ *out_teleservice = CISS_TELECOMM_SVC_ALL_ASYNC;
+ break;
+ case TAPI_SS_BS_ALL_DATA_PADCA:
+ *out_teleservice = CISS_TELECOMM_SVC_ALL_DEDI_PAD;
+ break;
+ case TAPI_SS_BS_ALL_PLMN_SPEC_BS:
+ *out_teleservice = CISS_TELECOMM_SVC_PLMN_BEAR_ALL;
+ break;
+ case TAPI_SS_BS_DATA_CIRCUIT_ASYNC:
+ *out_teleservice = CISS_TELECOMM_SVC_ALL_CS_ASYNC;
+ break;
+ case TAPI_SS_BS_DATA_ALL_PDS:
+ *out_teleservice = CISS_TELECOMM_SVC_ALL_DEDI_PS;
+ break;
+ case TAPI_SS_TS_NONE:
+ default:
+ *out_teleservice = CISS_TELECOMM_SVC_NONE;
+ DBG("\n [CISS-ENGINE] _ciss_get_telecomm_svc: ERROR Wrong Bearer = %d come. \n", in_teleservice);
+ break;
+ }
+ return TRUE;
+}
+
+int _ciss_get_forward_flavor_type(TelSsForwardWhen_t in_flavor, ciss_flavor_t *out_flavor)
+{
+ switch (in_flavor) {
+ case TAPI_SS_FORWARD_WHEN_UNCONDITIONAL_EV:
+ *out_flavor = CISS_FLAVOR_DIVERT_UNCONDITIONAL;
+ break;
+ case TAPI_SS_FORWARD_WHEN_BUSY_EV:
+ *out_flavor = CISS_FLAVOR_DIVERT_BUSY;
+ break;
+ case TAPI_SS_FORWARD_WHEN_NO_ANSWER_EV:
+ *out_flavor = CISS_FLAVOR_DIVERT_NOREPLY;
+ break;
+ case TAPI_SS_FORWARD_WHEN_NOT_REACHABLE_EV:
+ *out_flavor = CISS_FLAVOR_DIVERT_UNREACHABLE;
+ break;
+ case TAPI_SS_FORWARD_WHEN_ALL_CONDITIONAL_EV:
+ *out_flavor = CISS_FLAVOR_DIVERT_ALL_CONDITIONAL_FLAVORS;
+ break;
+ case TAPI_SS_FORWARD_WHEN_ALL_FORWARDING_EV:
+ *out_flavor = CISS_FLAVOR_DIVERT_ALL_FLAVORS;
+ break;
+ default:
+ *out_flavor = CISS_FLAVOR_NONE;
+ DBG("\n [CISS-ENGINE] _ciss_get_forward_flavor_type: ERROR Wrong Flavor = %d come. \n", in_flavor);
+ break;
+ }
+ return TRUE;
+}
+
+int _ciss_get_barring_flavor_type(TelSsCallBarType_t in_flavor, ciss_flavor_t *out_flavor)
+{
+ switch (in_flavor) {
+ case TAPI_CALL_BARRING_ALL:
+ *out_flavor = CISS_FLAVOR_BARRING_ALL_FLAVORS;
+ break;
+ case TAPI_CALL_BARRING_ALL_OUTGOING_CALLS:
+ *out_flavor = CISS_FLAVOR_BARRING_ALL_OUTGOING_CALLS;
+ break;
+ case TAPI_CALL_BARRING_ALL_OUTGOING_INTERN_CALL:
+ *out_flavor = CISS_FLAVOR_BARRING_ALL_OUTGOING_INTERNATIONAL;
+ break;
+ case TAPI_CALL_BARRING_ALL_OUTGOING_INTERN_CALL_EXCEPT:
+ *out_flavor = CISS_FLAVOR_BARRING_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME;
+ break;
+ case TAPI_CALL_BARRING_ALL_INCOMING_CALLS:
+ *out_flavor = CISS_FLAVOR_BARRING_ALL_INCOMING_CALLS;
+ break;
+ case TAPI_CALL_BARRING_ALL_INCOMING_CALLS_ROAMING:
+ *out_flavor = CISS_FLAVOR_BARRING_INCOMING_CALLS_WHEN_ROAMING;
+ break;
+ case TAPI_CALL_BARRING_OUTGOING:
+ *out_flavor = CISS_FLAVOR_BARRING_ALL_OUTGOING_CALLS;
+ break;
+ case TAPI_CALL_BARRING_INCOMING:
+ *out_flavor = CISS_FLAVOR_BARRING_ALL_INCOMING_CALLS;
+ break;
+ default:
+ *out_flavor = CISS_FLAVOR_NONE;
+ DBG("\n [CISS-ENGINE] _ciss_get_barring_flavor_type: ERROR Wrong Flavor = %d come. \n", in_flavor);
+ break;
+ }
+ return TRUE;
+}
+
+int _ciss_get_result_status_type(TelSsStatus_t in_status, ciss_status_t *out_status)
+{
+ switch (in_status) {
+ case TAPI_SS_STATUS_ACTIVE:
+ *out_status = CISS_STATUS_ACTIVE;
+ break;
+ case TAPI_SS_STATUS_REGISTERED:
+ *out_status = CISS_STATUS_REGISTERED;
+ break;
+ case TAPI_SS_STATUS_PROVISIONED:
+ *out_status = CISS_STATUS_PROVISIONED;
+ break;
+ case TAPI_SS_STATUS_QUIESCENT:
+ *out_status = CISS_STATUS_QUIESCENT;
+ break;
+ case TAPI_SS_STATUS_NOTHING:
+ *out_status = CISS_STATUS_NOTHING;
+ break;
+ default:
+ *out_status = CISS_STATUS_NOTHING;
+ DBG("\n [CISS-ENGINE] _ciss_get_result_status_type: ERROR Wrong TelSsStatus_t = %d come. \n", in_status);
+ break;
+ }
+ return TRUE;
+}
+
+int _ciss_get_requested_tapi_ussd_ind_type(ciss_ussd_ind_type_t *ind_type, TelSsUssdIndType_t pTapiIndType)
+{
+ DBG("\n [CISS-ENGINE] _ciss_get_requested_tapi_ussd_ind_type:defined =%d\n", pTapiIndType);
+ switch (pTapiIndType) {
+ case TAPI_USSD_IND_NOTIFY:
+ *ind_type = CISS_USSD_NOTIFY;
+ break;
+ case TAPI_USSD_IND_NO_ACTION_REQUIRE:
+ *ind_type = CISS_USSD_IND_NO_ACTION_REQUIRE;
+ break;
+ case TAPI_USSD_IND_ACTION_REQUIRE:
+ *ind_type = CISS_USSD_IND_ACTION_REQUIRE;
+ break;
+ case TAPI_USSD_IND_TERMINATED_BY_NET:
+ *ind_type = CISS_USSD_TERMINATED_BY_NET;
+ break;
+ case TAPI_USSD_IND_OTHER_CLIENT:
+ *ind_type = CISS_USSD_OTHER_CLIENT;
+ break;
+ case TAPI_USSD_IND_NOT_SUPPORT:
+ *ind_type = CISS_USSD_NOT_SUPPORT;
+ break;
+ case TAPI_USSD_IND_TIME_OUT:
+ *ind_type = CISS_USSD_TIME_OUT;
+ break;
+ default:
+ DBG("\n [CISS-ENGINE] _ciss_get_requested_tapi_ussd_ind_type:undefined =%d\n", pTapiIndType);
+ break;
+ }
+ return TRUE;
+}
+
+void _ciss_ui_mmi_get_service_name(ciss_service_t in_service, char *service_name)
+{
+ switch (in_service) {
+ case CISS_SERVICE_DIVERTING:
+ strncpy(service_name, CISS_STR_CALL_DIVERTING, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_SERVICE_BARRING:
+ strncpy(service_name, CISS_STR_CALL_BARRING, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_SERVICE_WAITING:
+ strncpy(service_name, CISS_STR_CALL_WAITING, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_SERVICE_CHANGE_BARRING_PASSWD:
+ strncpy(service_name, CISS_STR_CHANGE_PASSWORD, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_SERVICE_USSD:
+ strncpy(service_name, CISS_STR_INFORMATION, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_SERVICE_IDENTIFICATION:
+ default:
+ strncpy(service_name, "", CISS_TEXT_LEN_MAX - 1);
+ break;
+ }
+ service_name[CISS_TEXT_LEN_MAX - 1] = '\0';
+}
+
+void _ciss_ui_mmi_get_flavor_name(ciss_flavor_t in_flavor, char *flavor_name)
+{
+ switch (in_flavor) {
+ case CISS_FLAVOR_DIVERT_UNCONDITIONAL:
+ strncpy(flavor_name, CISS_STR_CALL_DIVERTING_ACTIVE_C_ALWAYS, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_FLAVOR_DIVERT_BUSY:
+ strncpy(flavor_name, CISS_STR_CALL_DIVERTING_ACTIVE_C_WHEN_BUSY, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_FLAVOR_DIVERT_NOREPLY:
+ strncpy(flavor_name, CISS_STR_CALL_DIVERTING_ACTIVE_C_WHEN_NOREPLY, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_FLAVOR_DIVERT_UNREACHABLE:
+ strncpy(flavor_name, CISS_STR_CALL_DIVERTING_ACTIVE_C_UNREACHABLE, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_FLAVOR_DIVERT_ALL_FLAVORS:
+ strncpy(flavor_name, CISS_STR_ALL_CALLS, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_FLAVOR_DIVERT_ALL_CONDITIONAL_FLAVORS:
+ strncpy(flavor_name, CISS_STR_CONDITIONAL, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_FLAVOR_BARRING_ALL_OUTGOING_CALLS:
+ strncpy(flavor_name, CISS_STR_ALL_OUTGOING_CALLS_BARRED, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_FLAVOR_BARRING_ALL_OUTGOING_INTERNATIONAL:
+ strncpy(flavor_name, CISS_STR_OUTGOING_INTERNATIONAL_CALLS_BARRED, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_FLAVOR_BARRING_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME:
+ strncpy(flavor_name, CISS_STR_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_FLAVOR_BARRING_ALL_INCOMING_CALLS:
+ strncpy(flavor_name, CISS_STR_ALL_INCOMING_CALLS_BARRED, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_FLAVOR_BARRING_INCOMING_CALLS_WHEN_ROAMING:
+ strncpy(flavor_name, CISS_STR_INCOMING_CALLS_BARRED_WHEN_ROAMING, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_FLAVOR_BARRING_ALL_FLAVORS:
+ strncpy(flavor_name, CISS_STR_ALL_BARRING, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_FLAVOR_BARRING_OUTGOING:
+ strncpy(flavor_name, CISS_STR_OUTGOING_BARRING, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_FLAVOR_BARRING_INCOMING:
+ strncpy(flavor_name, CISS_STR_INCOMING_BARRING, CISS_TEXT_LEN_MAX - 1);
+ break;
+ default:
+ strncpy(flavor_name, "", CISS_TEXT_LEN_MAX - 1);
+ }
+ flavor_name[CISS_TEXT_LEN_MAX - 1] = '\0';
+}
+
+void _ciss_ui_mmi_get_bearer_name(ciss_service_t ss_type, ciss_telecomm_svc_t in_teleservice, char *teleservice_name)
+{
+ DBG("\n [CISS-MMI] _ciss_ui_get_bearer_name: in_teleservice = %d come. \n", in_teleservice);
+
+ switch (in_teleservice) {
+#ifdef _SHP_CPHS
+ case CISS_TELECOMM_SVC_VOICE:
+ if (PshCphsCheckCsp(PSH_CPHS_CSP_ALS))
+ strncpy(teleservice_name, CISS_STR_VOICE, CISS_TEXT_LEN_MAX - 1);
+ else
+ strncpy(teleservice_name, CISS_STR_VOICE, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_TELECOMM_SVC_PLMN_TELE_1:
+ strncpy(teleservice_name, CISS_STR_VOICE, CISS_TEXT_LEN_MAX - 1);
+ break;
+#else
+ case CISS_TELECOMM_SVC_VOICE:
+ strncpy(teleservice_name, CISS_STR_VOICE, CISS_TEXT_LEN_MAX - 1);
+ break;
+#endif
+ case CISS_TELECOMM_SVC_FAX:
+ strncpy(teleservice_name, CISS_STR_FAX, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_TELECOMM_SVC_ALL_CS_SYNC:
+ strncpy(teleservice_name, CISS_STR_VIDEO, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_TELECOMM_SVC_ALL_TELE_BEARER:
+ strncpy(teleservice_name, CISS_STR_ALL_SERVICES, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_TELECOMM_SVC_ALL_TELE:
+ strncpy(teleservice_name, CISS_STR_ALL_TELECOM_SERVICES, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_TELECOMM_SVC_ALL_DATA_TELE:
+ strncpy(teleservice_name, CISS_STR_ALL_DATA_SERVICES, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_TELECOMM_SVC_ALL_TELE_EXPT_SMS:
+ strncpy(teleservice_name, CISS_STR_FOR_ALL_TELE_SERVICES_EXCEPT_SMS, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_TELECOMM_SVC_PLMN_TELE_ALL:
+ strncpy(teleservice_name, CISS_STR_ALL_PLMN_BEARERS, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_TELECOMM_SVC_ALL_BEARER:
+ strncpy(teleservice_name, CISS_STR_ALL_BEARER_SERVICES, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_TELECOMM_SVC_ALL_DATA_CDA:
+ strncpy(teleservice_name, CISS_STR_ALL_ASYNCHRONOUS_DATA, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_TELECOMM_SVC_ALL_SYNC:
+ strncpy(teleservice_name, CISS_STR_ALL_SYNCHRONOUS_SERVICES, CISS_TEXT_LEN_MAX - 1);
+ break;
+#ifdef _SHP_OPERATOR_VODAFONE
+ case CISS_TELECOMM_SVC_ALL_ASYNC:
+ strncpy(teleservice_name, CISS_STR_ALL_ASYNCHRONOUS_DATA, CISS_TEXT_LEN_MAX - 1);
+ break;
+#else
+ case CISS_TELECOMM_SVC_ALL_ASYNC:
+ strncpy(teleservice_name, CISS_STR_ALL_ASYNCHRONOUS_DATA, CISS_TEXT_LEN_MAX - 1);
+ break;
+#endif
+ case CISS_TELECOMM_SVC_ALL_DEDI_PAD:
+ strncpy(teleservice_name, CISS_STR_ALL_PADCA_SERVICES, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_TELECOMM_SVC_PLMN_BEAR_ALL:
+ strncpy(teleservice_name, CISS_STR_ALL_PLMN_BEARERS, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_TELECOMM_SVC_SMS:
+ strncpy(teleservice_name, CISS_STR_SMS, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_TELECOMM_SVC_ALL_CS_ASYNC:
+ strncpy(teleservice_name, CISS_STR_ASYNCHRONOUS_DATA_SERVICES, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_TELECOMM_SVC_ALL_DEDI_PS:
+ strncpy(teleservice_name, CISS_STR_ALL_PDS_SERVICES, CISS_TEXT_LEN_MAX - 1);
+ break;
+ case CISS_TELECOMM_SVC_NONE:
+ default:
+ DBG("\n [CISS-MMI] _ciss_ui_get_bearer_name: ERROR Wrong Bearer = %d come. \n", in_teleservice);
+ if ((ss_type == CISS_SERVICE_WAITING) ||
+ (ss_type == CISS_SERVICE_IDENTIFICATION))
+ strncpy(teleservice_name, "", CISS_TEXT_LEN_MAX - 1);
+ else
+ strncpy(teleservice_name, CISS_STR_ALL_SERVICES, CISS_TEXT_LEN_MAX - 1);
+ }
+ teleservice_name[CISS_TEXT_LEN_MAX - 1] = '\0';
+}
+
+void _ciss_ui_mmi_get_result_status_type(ciss_service_t ss_type, ciss_status_t result_status, char *szResult)
+{
+ if (ss_type == CISS_SERVICE_DIVERTING) {
+ switch (result_status) {
+ case CISS_STATUS_ACTIVE:
+ strncpy(szResult, CISS_STR_ACTIVATED, CISS_TEXT_LEN_MAX - 1);
+ break;
+
+ case CISS_STATUS_REGISTERED:
+ case CISS_STATUS_PROVISIONED:
+ case CISS_STATUS_QUIESCENT:
+ case CISS_STATUS_NOTHING:
+ default:
+ strncpy(szResult, CISS_STR_DEACTIVATED, CISS_TEXT_LEN_MAX - 1);
+ break;
+ }
+ } else {
+ /* Wating or Barring case only have Act / Deact status */
+ switch (result_status) {
+ case CISS_STATUS_ACTIVE:
+ case CISS_STATUS_REGISTERED:
+ strncpy(szResult, CISS_STR_ACTIVATED, CISS_TEXT_LEN_MAX - 1);
+ break;
+
+ case CISS_STATUS_PROVISIONED:
+ case CISS_STATUS_QUIESCENT:
+ case CISS_STATUS_NOTHING:
+ default:
+ strncpy(szResult, CISS_STR_DEACTIVATED, CISS_TEXT_LEN_MAX - 1);
+ break;
+ }
+ }
+ szResult[CISS_TEXT_LEN_MAX - 1] = '\0';
+}
+
+
--- /dev/null
+/*
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * This file is part of <ciss>
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use it only in accordance
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability of the software,
+ * either express or implied, including but not limited to the implied warranties of merchantability,
+ * fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,
+ * modifying or distributing this software or its derivatives.
+ *
+ */
+
+#include <stdio.h>
+#include <TapiCommon.h>
+#include <appcore-efl.h>
+#include <aul.h>
+#include <glib-2.0/glib.h>
+#include <Ecore.h>
+
+#include "ciss-common.h"
+#include "ciss-util.h"
+#include "ciss-ussd.h"
+#include "ciss-resp.h"
+#include "ciss-tapi-request.h"
+#include "ciss-parser.h"
+#include "ciss-widget.h"
+
+static int __ciss_relaunch_handler(bundle *b, void *data)
+{
+ DBG("Enter");
+
+ int event_type = 0;
+ int event_status = 0;
+ int encoded_data_length;
+
+ struct appdata *ad = (struct appdata *)data;
+ Evas_Object *popup;
+ char *tmp;
+
+ tmp = (char *)bundle_get_val(b, "CISS_LAUNCHING_MODE");
+
+ if (strcmp(tmp, "REQ") == 0) {
+ tmp = (char *)bundle_get_val(b, "CISS_REQ_STRING");
+ retv_if(tmp == NULL, -1);
+ DBG("CISS_REQ_STRING=%s",tmp);
+ strncpy(ad->req_string, tmp, REQ_STRING_MAX_LEN - 1);
+ ciss_err_t ciss_err_code;
+
+ if (ad->win_main == NULL) {
+ Evas_Object *win;
+ win = _ciss_create_win(PACKAGE);
+ retv_if(win == NULL, -1);
+ ad->win_main = win;
+ evas_object_show(win);
+ ad->end_key_event_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _ciss_on_end_key_down, NULL);
+ }
+
+ if (ad->popup != NULL) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+
+ DBG("scale = %f", elm_config_scale_get());
+
+ popup = _ciss_create_noti_popup(ad->win_main, CISS_STR_REQUESTING, NULL, 30.0, ad);
+
+ ad->popup = popup;
+
+ ciss_mmi_context_t mmi_ctx;
+
+ ciss_err_code = _ciss_parse_req_string(tmp, &mmi_ctx);
+
+ if (ciss_err_code != CISS_ERR_NONE)
+ _ciss_create_error_popup(ad->win_main, ciss_err_code, 2.0, ad);
+ else {
+ ciss_err_code = _ciss_send_tapi_request(&mmi_ctx);
+ DBG("ciss_err_code(_ciss_send_tapi_request) = %d", ciss_err_code);
+ if (ciss_err_code != CISS_ERR_NONE)
+ _ciss_create_error_popup(ad->win_main, ciss_err_code, 2.0, ad);
+ }
+ } else if (strcmp(tmp, "RESP")== 0) {
+ tmp = (char *)bundle_get_val(b, "KEY_EVENT_TYPE");
+ event_type = atoi(tmp);
+ ad->cmd_type = event_type;
+
+ tmp = (char *)bundle_get_val(b, "KEY_STATUS");
+ event_status = atoi(tmp);
+
+ tmp = (char *)bundle_get_val(b, "KEY_ENCODED_DATA_LENGTH");
+ encoded_data_length = atoi(tmp);
+
+ tmp = (char *)bundle_get_val(b, "KEY_ENCODED_DATA");
+
+ gchar *decoded_data;
+ gsize decoded_data_length;
+
+ decoded_data = (gchar *)g_base64_decode((gchar *)tmp,&decoded_data_length);
+ DBG("Received Event=0x%x", event_type);
+ DBG("encoded_data_len = %d decoded_data_len = %d", encoded_data_length,decoded_data_length);
+
+ TelTapiEvent_t event;
+ event.EventType = event_type;
+ event.pData= decoded_data;
+ event.pDataLen = decoded_data_length;
+ event.Status = event_status;
+
+ switch (event_type) {
+ case TAPI_EVENT_SS_USSD_IND:
+ case TAPI_EVENT_SS_USSD_CNF:
+ case TAPI_EVENT_SS_USSD_RSP_CNF:
+ case TAPI_EVENT_SS_USSD_CANCEL_CNF:
+ _ciss_on_tapi_ussd_event(&event, ad);
+ break;
+ case TAPI_EVENT_SAT_SEND_SS_IND:
+ _ciss_on_tapi_sat_ss_event(&event, ad);
+ break;
+ case TAPI_EVENT_SAT_SEND_USSD_IND:
+ _ciss_on_tapi_sat_ussd_event(&event, ad);
+ break;
+ case TAPI_EVENT_SS_FORWARD_CNF:
+ case TAPI_EVENT_SS_FORWARD_QUERYSTATUS_CNF:
+ case TAPI_EVENT_SS_BARRING_CNF:
+ case TAPI_EVENT_SS_BARRING_QUERYSTATUS_CNF:
+ case TAPI_EVENT_SS_BARRING_CHANGEPASS_CNF:
+ case TAPI_EVENT_SS_WAITING_CNF:
+ case TAPI_EVENT_SS_WAITING_QUERYSTATUS_CNF:
+ case TAPI_EVENT_SS_CLI_QUERYSTATUS_CNF:
+ _ciss_on_tapi_ss_event(&event, ad);
+ break;
+ default:
+ return -1;
+ }
+ } else {
+ ERR("wrong exec type");
+ return -1;
+ }
+
+ DBG("Leave");
+ return 0;
+}
+
+static int __ciss_app_create(void *data)
+{
+ DBG("Enter");
+
+ struct appdata *ad = (struct appdata *)data;
+ _ciss_tapi_event_setup(ad);
+ ad->win_main = NULL;
+ ad->layout_main = NULL;
+ ad->bg = NULL;
+ ad->popup = NULL;
+ ad->end_key_event_handler = NULL;
+ ad->is_sat_request = EINA_FALSE;
+ _ciss_geinlist_item_class_new(ad);
+
+ return 0;
+}
+
+static int __ciss_app_terminate(void *data)
+{
+ DBG("Enter");
+
+ struct appdata *ad = data;
+
+ _ciss_geinlist_item_class_free(ad);
+ if (ad->win_main) {
+ evas_object_del(ad->win_main);
+ if (ad->end_key_event_handler)
+ ecore_event_handler_del(ad->end_key_event_handler);
+ }
+
+ if (ad->bg) {
+ evas_object_del(ad->bg);
+ ad->bg = NULL;
+ }
+
+ _ciss_deregister_tel_event();
+ DBG("Leave");
+
+ return 0;
+}
+
+static int __ciss_app_pause(void *data)
+{
+ elm_exit();
+ return 0;
+}
+
+static int __ciss_app_resume(void *data)
+{
+ return 0;
+}
+
+static int __ciss_app_reset(bundle *b, void *data)
+{
+ DBG("Enter");
+
+ struct appdata *ad = data;
+
+ if (ad->win_main)
+ elm_win_activate(ad->win_main);
+
+ __ciss_relaunch_handler(b, data);
+ DBG("Leave");
+ return 0;
+}
+
+int main(int argc, char *argv[])
+{
+ DBG("Enter");
+
+ struct appdata ad;
+
+ struct appcore_ops ops = {
+ .create = __ciss_app_create,
+ .terminate = __ciss_app_terminate,
+ .pause = __ciss_app_pause,
+ .resume =__ciss_app_resume,
+ .reset = __ciss_app_reset,
+ };
+
+ appcore_set_i18n(PACKAGE, LOCALEDIR);
+
+ memset(&ad, 0x0, sizeof(struct appdata));
+
+ ops.data = &ad;
+
+ return appcore_efl_main(PACKAGE, &argc, &argv, &ops);
+}
+
--- /dev/null
+/*\r
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved \r
+ *\r
+ * This file is part of <ciss>\r
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>\r
+ *\r
+ * PROPRIETARY/CONFIDENTIAL\r
+ *\r
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").\r
+ * You shall not disclose such Confidential Information and shall use it only in accordance\r
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.\r
+ * SAMSUNG make no representations or warranties about the suitability of the software,\r
+ * either express or implied, including but not limited to the implied warranties of merchantability,\r
+ * fitness for a particular purpose, or non-infringement.\r
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,\r
+ * modifying or distributing this software or its derivatives.\r
+ *\r
+ */\r
+\r
+#include "ciss-util.h"\r
+#include "ciss-tapi-request.h"\r
+#include "ciss-parser.h"\r
+#include "ciss-converter.h"\r
+\r
+static int __ciss_find_si_fields(char *user_input, char *sc, char *sia, char *sib, char *sic)\r
+{\r
+ char *input;\r
+ int sia_offset = 0;\r
+ int sib_offset = 0;\r
+ int sic_offset = 0;\r
+ int sia_len = 0;\r
+ int sib_len = 0;\r
+ int sic_len = 0;\r
+ int sc_len = 0;\r
+\r
+ /*\r
+ 123*456*789*012#\r
+ | | | |\r
+ sc sia sib sic\r
+ */\r
+ input = user_input;\r
+ sc_len = strspn(input, "0123456789");\r
+ DBG("\n [CISS-ENGINE] sc_len : %d", sc_len);\r
+ if (sc_len > MAX_SC_LEN)\r
+ return false;\r
+ else {\r
+ memcpy(sc, input, sc_len);\r
+ sc[sc_len] = '\0';\r
+ }\r
+\r
+ if (input[sc_len] == '*') {\r
+ /* check if there is an SIA field */\r
+ sia_offset = sc_len + 1;\r
+ sia_len = strspn((input + sia_offset), "+1234567890");\r
+ /* check if there is an SIB field */\r
+ if (input[sia_offset + sia_len] == '*') {\r
+ sib_offset = sia_offset + sia_len + 1;\r
+ sib_len = strspn (input + sib_offset, "+1234567890");\r
+ /* check if there is an SIC field */\r
+ if (input[sib_offset + sib_len] == '*') {\r
+ sic_offset = sib_offset + sib_len + 1;\r
+ sic_len = strspn(input + sic_offset, "+1234567890");\r
+ }\r
+ }\r
+ }\r
+\r
+ if ((sia_len > 0) && (sia_len <= MAX_SIA_LEN)) {\r
+ memcpy(sia, input + sia_offset, sia_len);\r
+ sia[sia_len] = '\0';\r
+ }\r
+\r
+ if ((sib_len > 0) && (sib_len <= MAX_SIB_LEN)) {\r
+ memcpy(sib, input + sib_offset, sib_len);\r
+ sib[sib_len] = '\0';\r
+ }\r
+\r
+ if ((sic_len > 0) && (sic_len <= MAX_SIC_LEN)) {\r
+ memcpy(sic, input + sic_offset, sic_len);\r
+ sic[sic_len] = '\0';\r
+ }\r
+\r
+ /* NOTE: A NULL value for the SIA, SIB and SIC are\r
+ also valid and so return TRUE\r
+ */\r
+ if ((sib_len > MAX_SIB_LEN) ||\r
+ (sia_len > MAX_SIA_LEN) ||\r
+ (sic_len > MAX_SIC_LEN))\r
+ return false;\r
+ return TRUE;\r
+}\r
+\r
+static unsigned char __ciss_parse_req_string(ciss_mmi_context_t *mmi_ctx, int *error_code)\r
+{\r
+ char sups_str[MAX_DIALED_DIGITS];\r
+ char *user_sc = NULL;\r
+ char bsg[MAX_SIA_LEN + 1];\r
+ unsigned char ss_str_len;\r
+ unsigned char ss_operation;\r
+ unsigned char tapi_flavor = 0;\r
+ unsigned char ss_type = 0xff;\r
+ TelSsTeleService_t tapi_bsg;\r
+ char sia[MAX_SIA_LEN + 1];\r
+ char sib[MAX_SIB_LEN + 1];\r
+ char sic[MAX_SIC_LEN + 1];\r
+ char ss_code[MAX_SC_LEN + 1];\r
+\r
+ ss_operation = NULL_SS_OPERATION;\r
+ memset(sia, '\0', sizeof(sia));\r
+ memset(sib, '\0', sizeof(sib));\r
+ memset(sic, '\0', sizeof(sic));\r
+ memset(ss_code, '\0', sizeof(ss_code));\r
+ memset(bsg, '\0', sizeof(bsg));\r
+ memset(sups_str, '\0', MAX_DIALED_DIGITS);\r
+\r
+ /* user inputs must be in the g_form\r
+ ** "**123*456*789*012#SEND"\r
+ ** | | | | | |\r
+ ** | | | | | |------>send key\r
+ ** | | | | |--------->sic\r
+ ** | | | |------------->sib\r
+ ** | | |----------------->sia\r
+ ** | |--------------------->sc\r
+ ** |------------------------>operation\r
+ */\r
+\r
+ /* STEP 1: Find the SS operation */\r
+ memcpy(sups_str, mmi_ctx->user_string, mmi_ctx->user_string_length);\r
+ /* get the length of the user input */\r
+ ss_str_len = mmi_ctx->user_string_length;\r
+ /* special case */\r
+ /* this may be a nomal call origination with CLIR\r
+ */\r
+ if (((memcmp(sups_str, "*31#", 4) == 0) ||\r
+ (memcmp(sups_str, "#31#", 4) == 0)) &&\r
+ (sups_str[ss_str_len - 1] != '#'))\r
+ return NULL_SS_OPERATION;\r
+\r
+ /* check the first character */\r
+ if (sups_str[0] == '*') {\r
+ /* possible combinations are\r
+ *41* - activation\r
+ *03* - pwd registration\r
+ **41* - registration\r
+ **03* - pwd registration\r
+ *#41* - interrogation\r
+ */\r
+ if (ISDIGIT(sups_str [1])) {\r
+ /* next char is a digit, can be activation or pwd_reg */\r
+ if (!strncmp(sups_str, "*03*", strlen("*03*"))) {\r
+ DBG("\n [CISS-ENGINE] registerPassword");\r
+ ss_operation = registerPassword;\r
+ user_sc = sups_str + 4;\r
+ } else {\r
+ DBG("\n [CISS-ENGINE] activateSS");\r
+ ss_operation = activateSS; /* eg: *41* for Activation */\r
+ user_sc = sups_str + 1;\r
+ }\r
+ } else if ((sups_str[1] == '#') && ISDIGIT(sups_str[2])) {\r
+ /* now the combination is *#41 */\r
+ DBG("\n [CISS-ENGINE] interrogateSS");\r
+ ss_operation = interrogateSS;\r
+ user_sc = sups_str + 2;\r
+ } else if (sups_str[1] == '*') {\r
+ /* possible combinations are\r
+ **41* - registration\r
+ **03* - pwd registration\r
+ */\r
+ if (ISDIGIT(sups_str[2])) {\r
+ if (!strncmp(sups_str, "**03*", strlen("**03*"))) {\r
+ DBG("\n [CISS-ENGINE] registerPassword");\r
+ ss_operation = registerPassword;\r
+ user_sc = sups_str + 5;\r
+ } else {\r
+ DBG("\n [CISS-ENGINE] registerSS");\r
+ ss_operation = registerSS;\r
+ user_sc = sups_str + 2;\r
+ }\r
+ }\r
+ }\r
+ } else if (sups_str[0] == '#') {\r
+ /* possible combinations are\r
+ ##41* - erasure\r
+ #41* - deactivation\r
+ */\r
+ if (ISDIGIT(sups_str[1])) {\r
+ DBG("\n [CISS-ENGINE] deactivateSS");\r
+ ss_operation = deactivateSS;\r
+ user_sc = sups_str + 1;\r
+ } else if ((sups_str[1] == '#') && (ISDIGIT(sups_str[2]))) {\r
+ /* Additional added a check to verify whether third character in USSD String is a digit or not.\r
+ If 3rd Character is not a digit then should send USSD Request not Erase SS Operation\r
+ */\r
+ DBG("\n [CISS-ENGINE] eraseSS");\r
+ ss_operation = eraseSS;\r
+ user_sc = sups_str + 2;\r
+ }\r
+ } else if ((ss_str_len == 2) && (ISUSSDDIGIT(sups_str[0]) && ISDIGIT(sups_str[1]))) {\r
+ DBG("\n [CISS-ENGINE] processUnstructuredSS_Request");\r
+ ss_operation = processUnstructuredSS_Request;\r
+ return ss_operation;\r
+ } else if ((ss_str_len == 1) && (ISDIGIT(sups_str[0]))) {\r
+ DBG("\n [CISS-ENGINE] processUnstructuredSS_Request");\r
+ ss_operation = processUnstructuredSS_Request;\r
+ return ss_operation;\r
+ }\r
+\r
+ if (ss_operation != NULL_SS_OPERATION) {\r
+ /* By now the operation must have been identified */\r
+ /* STEP 2: Find the SI fields */\r
+ if (!__ciss_find_si_fields(user_sc, ss_code, sia, sib, sic)) {\r
+ /*Added code for UI display for password too long for call barring */\r
+ /* Since SIB,SIC field length is 4 */\r
+ if (strlen(ss_code)!= 0) {\r
+ if (!_ciss_convert_sc_to_tapi_flavor(ss_code, &tapi_flavor, &ss_type)) {\r
+ ss_operation = NULL_SS_OPERATION;\r
+ } else if (ss_type == TAPI_SS_TYPE_BARRING) {\r
+ DBG("\n [CISS-ENGINE] Too long password");\r
+ ss_operation = NULL_SS_OPERATION;\r
+ *error_code = CISS_ERR_CB_PWD_TOO_LONG;\r
+ return ss_operation;\r
+ }\r
+ }\r
+ /* End of password too long added code */\r
+ ss_operation = NULL_SS_OPERATION;\r
+ }\r
+\r
+ DBG("\n [CISS-ENGINE] sia = %s, sib = %s, sic = %s", sia, sib, sic);\r
+ }\r
+ /* added for FDN check */\r
+ strncpy(mmi_ctx->ss_code, ss_code, MAX_SC_LEN);\r
+ /* by now SIA, SIB, SIC fields must have been separated out */\r
+ /* STEP 3: Convert SC to network SC and update the\r
+ sups_user_data field\r
+ */\r
+ if ((ss_operation != registerPassword) &&\r
+ (ss_operation != NULL_SS_OPERATION)) {\r
+ if (!_ciss_convert_sc_to_tapi_flavor(ss_code, &tapi_flavor, &ss_type))\r
+ ss_operation = NULL_SS_OPERATION;\r
+ else {\r
+ mmi_ctx->ss_flavor = tapi_flavor;\r
+ mmi_ctx->ss_type = ss_type;\r
+ }\r
+ }\r
+ /* by now the translation of SC must be complete */\r
+ /* STEP 4: Check for BSG . This may be in SIA, SIB or SIC */\r
+ if (ss_operation != NULL_SS_OPERATION) {\r
+ if ((ss_operation != registerPassword)&&\r
+ ((ss_type == TAPI_SS_TYPE_FORWARDING)||\r
+ (ss_type == TAPI_SS_TYPE_BARRING))) {\r
+ /* BSG is in SIB */\r
+ if (ss_operation == interrogateSS)\r
+ strncpy(bsg, sia, MAX_SIA_LEN);\r
+ else\r
+ strncpy(bsg, sib, MAX_SIB_LEN);\r
+ } else if (ss_type == TAPI_SS_TYPE_WAITING) {\r
+ /* MSN:SISO changed for the validation of the #43**11# kind of strings */\r
+ if ((sib[0] !=0) || (sic[0] != 0))\r
+ ss_operation = NULL_SS_OPERATION;\r
+ else\r
+ /* BSG is in SIA */\r
+ strncpy(bsg, sia, MAX_SIA_LEN);\r
+ } else\r
+ bsg[0] = '\0';\r
+\r
+ /* by now BSG must be identified */\r
+ /* STEP 5: Convert BSG to net BSG */\r
+ /* validation of the #43**11# kind of strings */\r
+ if ((ss_operation != registerPassword) &&\r
+ (ss_operation != NULL_SS_OPERATION)) {\r
+ /* special case */\r
+ if (_ciss_convert_bsg_to_tapi_bsg(bsg, &tapi_bsg))\r
+ mmi_ctx->tapi_bsg = tapi_bsg;\r
+ else\r
+ ss_operation = NULL_SS_OPERATION;\r
+ }\r
+ }\r
+\r
+ /* STEP 6: Convert DN(divert number), if any */\r
+ if (ss_operation != NULL_SS_OPERATION) {\r
+ if (ss_type == TAPI_SS_TYPE_FORWARDING) {\r
+ if (sia[0] != '\0') {\r
+ strncpy(mmi_ctx->divert_number, sia, strlen(sia));\r
+ mmi_ctx->divert_number[strlen(sia)] = '\0';\r
+ }\r
+ /* else the length of the DN will be 0 */\r
+ }\r
+ }\r
+\r
+ /* STEP 7: Set the NR(no reply) timer */\r
+ if (((ss_operation == activateSS) || (ss_operation == registerSS)) &&\r
+ (ss_type == TAPI_SS_TYPE_FORWARDING) &&\r
+ ((tapi_flavor == TAPI_SS_FORWARD_WHEN_ALL_FORWARDING_EV) ||\r
+ (tapi_flavor == TAPI_SS_FORWARD_WHEN_ALL_CONDITIONAL_EV) ||\r
+ (tapi_flavor == TAPI_SS_FORWARD_WHEN_NO_ANSWER_EV))) {\r
+ if (sic[0] != '\0')\r
+ mmi_ctx->nr_timer = atoi(sic);\r
+ else\r
+ mmi_ctx->nr_timer = 0;\r
+ }\r
+\r
+ /* STEP 8: Check is activation is also registration? */\r
+ if (ss_operation == activateSS) {\r
+ if (mmi_ctx->divert_number[0] > 0)\r
+ ss_operation = registerSS;\r
+ else if (mmi_ctx->nr_timer != 0)\r
+ ss_operation = registerSS;\r
+ }\r
+\r
+ /* STEP 9: copy the password */\r
+ /* for barring operations other than register*/\r
+ if (ss_operation != NULL_SS_OPERATION) {\r
+ /*Added code for UI display for password too long for call barring */\r
+ /* Since SIA feild length is 40 */\r
+ if ((ss_type == TAPI_SS_TYPE_BARRING) ||\r
+ (ss_operation == registerPassword)) {\r
+ if (strlen(sia) > 4) {\r
+ DBG("\n [CISS-ENGINE] Too long password");\r
+ ss_operation = NULL_SS_OPERATION;\r
+ *error_code = CISS_ERR_CB_PWD_TOO_LONG;\r
+ return ss_operation;\r
+ }\r
+ }\r
+\r
+ /* End of password too long added code */\r
+ if ((ss_type == TAPI_SS_TYPE_BARRING) &&\r
+ (ss_operation != registerPassword)) {\r
+ if (ss_operation != interrogateSS) {\r
+ if (strlen(sia) < 4) {\r
+ DBG("\n [CISS-ENGINE] Pwd Too Short : %d",strlen(sia));\r
+ ss_operation = NULL_SS_OPERATION;\r
+ *error_code = CISS_ERR_CB_PWD_TOO_SORT;\r
+ return ss_operation;\r
+ } else if (strlen(sia) > 4) {\r
+ DBG("\n [CISS-ENGINE] Pwd Too long : %d",strlen(sia));\r
+ ss_operation = NULL_SS_OPERATION;\r
+ *error_code = CISS_ERR_CB_PWD_TOO_LONG;\r
+ return ss_operation;\r
+ } else {\r
+ strncpy(mmi_ctx->ss_password, sia, CISS_MAX_PASSWORD_LEN);\r
+ mmi_ctx->ss_password[CISS_MAX_PASSWORD_LEN] = '\0';\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ /* copy old_pwd, new_pwd, new_pwd_again */\r
+ if (ss_operation == registerPassword) {\r
+ if ((strlen(sia) != 4) ||\r
+ (strlen(sib) != 4) ||\r
+ (strlen(sic) != 4)) {\r
+ DBG("\n [CISS-ENGINE] Pwd Length Incorrect : %d %d %d", strlen(sia), strlen(sib), strlen(sic));\r
+ memset(mmi_ctx->ss_password, '\0', CISS_MAX_PASSWORD_LEN + 1);\r
+ memset(mmi_ctx->ss_new_password, '\0', CISS_MAX_PASSWORD_LEN + 1);\r
+ memset(mmi_ctx->ss_new_password2, '\0', CISS_MAX_PASSWORD_LEN + 1);\r
+ strncpy(mmi_ctx->ss_password,sia, CISS_MAX_PASSWORD_LEN);\r
+ strncpy(mmi_ctx->ss_new_password,sib, CISS_MAX_PASSWORD_LEN);\r
+ strncpy(mmi_ctx->ss_new_password2,sic, CISS_MAX_PASSWORD_LEN);\r
+ } else {\r
+ memset(mmi_ctx->ss_password, '\0', CISS_MAX_PASSWORD_LEN + 1);\r
+ memset(mmi_ctx->ss_new_password, '\0', CISS_MAX_PASSWORD_LEN + 1);\r
+ memset(mmi_ctx->ss_new_password2, '\0', CISS_MAX_PASSWORD_LEN + 1);\r
+ strncpy(mmi_ctx->ss_password,sia, CISS_MAX_PASSWORD_LEN);\r
+ strncpy(mmi_ctx->ss_new_password,sib, CISS_MAX_PASSWORD_LEN);\r
+ strncpy(mmi_ctx->ss_new_password2,sic, CISS_MAX_PASSWORD_LEN);\r
+ }\r
+ }\r
+\r
+ if (ss_operation == NULL_SS_OPERATION) {\r
+ /* check if it is an Unstructured SS data */\r
+ if ((ss_str_len <= MAX_USS_CHAR) &&\r
+ (ss_str_len > 2) &&\r
+ (sups_str[ss_str_len - 1] == '#'))\r
+ ss_operation = processUnstructuredSS_Request;\r
+ }\r
+ return (ss_operation);\r
+}\r
+\r
+int _ciss_parse_req_string(char *pszSS, ciss_mmi_context_t *mmi_ctx)\r
+{\r
+ DBG("Enter");\r
+ memset(mmi_ctx, 0x0, sizeof(ciss_mmi_context_t));\r
+ DBG("\n [CISS-ENGINE] received string = %s", pszSS);\r
+ mmi_ctx->user_string_length = strlen(pszSS);\r
+ if (mmi_ctx->user_string_length > 0)\r
+ memcpy(mmi_ctx->user_string, pszSS, mmi_ctx->user_string_length);\r
+ else {\r
+ DBG("\n [CISS-ENGINE] User String Length should be non-zero");\r
+ return CISS_ERR_UNKNOWN;\r
+ }\r
+\r
+ int error_code = CISS_ERR_NONE;\r
+ mmi_ctx->opcode = __ciss_parse_req_string(mmi_ctx, &error_code);\r
+ DBG("\n [CISS-ENGINE] Parsed opcode = %d", mmi_ctx->opcode);\r
+ DBG("\n [CISS-ENGINE] Parsed SSCode = %x", mmi_ctx->ss_flavor);\r
+ DBG("\n [CISS-ENGINE] Parsed SStype = %x", mmi_ctx->ss_type);\r
+ DBG("\n [CISS-ENGINE] Parsed BS Code = %x ", mmi_ctx->tapi_bsg);\r
+ DBG("\n [CISS-ENGINE] Parsed NR Timer = %d", mmi_ctx->nr_timer);\r
+ DBG("\n [CISS-ENGINE] Parsed Divert no = %s", mmi_ctx->divert_number);\r
+ DBG("\n [CISS-ENGINE] Parsed SS Pwd = %s", mmi_ctx->ss_password);\r
+ DBG("\n [CISS-ENGINE] Parsed SS New Pwd = %s", mmi_ctx->ss_new_password);\r
+ DBG("\n [CISS-ENGINE] Parsed SS New Pwd cnf = %s", mmi_ctx->ss_new_password2);\r
+ if ((mmi_ctx->opcode == NULL_SS_OPERATION) &&\r
+ (error_code == CISS_ERR_NONE))\r
+ error_code = CISS_ERR_ILLEGAL_SS_OPER;\r
+\r
+ return error_code;\r
+}\r
+\r
--- /dev/null
+/*
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * This file is part of <ciss>
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use it only in accordance
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability of the software,
+ * either express or implied, including but not limited to the implied warranties of merchantability,
+ * fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,
+ * modifying or distributing this software or its derivatives.
+ *
+ */
+
+#include "ciss-common.h"
+#include "ciss-widget.h"
+#include "ciss-resp.h"
+#include "ciss-tapi-request.h"
+#include "ciss-converter.h"
+#include "ciss-util.h"
+#include <TapiEvent.h>
+
+static char resultstring[CISS_MAX_SS_RECORDS][CISS_USSD_DATA_SIZE_MAX];
+
+static void __ciss_create_forward_result_string(ciss_result_t *ciss_result, TelSsInfo_t *ss_info)
+{
+ int i;
+ DBG("\n [CISS-ENGINE] __ciss_create_forward_result_string: num of param=%d\n", ss_info->NumberOfRecords);
+ /* Check Network result & Setting Proper result string to display */
+ /* Set Supplement service type string */
+ ciss_result->szSsType = CISS_SERVICE_DIVERTING;
+ ciss_result->nRecordNum = ss_info->NumberOfRecords;
+ /* Request from MMI string */
+
+ /* No SS Result received case.. */
+ if (ss_info->NumberOfRecords <= 0) {
+ DBG("\n [CISS-ENGINE] __ciss_create_forward_result_string: (ME) parameter num=0!\n");
+ /* Set Display string : Default telecommSvc, Flavor, Result */
+ ciss_result->nRecordNum = 0;
+ _ciss_get_telecomm_svc(TAPI_SS_TS_NONE, &ciss_result->szBearer[0]);
+ _ciss_get_result_status_type(TAPI_SS_STATUS_PROVISIONED, &ciss_result->szResult[0]);
+ ciss_result->szFlavor = CISS_FLAVOR_NONE;
+ } else {
+ /* Single or Multiple result received case..
+ In case of all CF and all conditional CF, tapi always sends a no reply flavor.
+ So we have to get the flavor with requested data that is saved in ss_result_string structure. */
+
+ /* Set Display string : Network result value */
+ for (i = 0; i < ss_info->NumberOfRecords; i++) {
+ _ciss_get_telecomm_svc(ss_info->SsRecord.ForwardingRecord.rec_class[i].TeleCommService, &ciss_result->szBearer[i]);
+ _ciss_get_result_status_type(ss_info->SsRecord.ForwardingRecord.rec_class[i].Status, &ciss_result->szResult[i]);
+
+ if ((ss_info->SsRecord.ForwardingRecord.rec_class[0].ForwardCondition == TAPI_SS_FORWARD_WHEN_NO_ANSWER_EV) &&
+ (ss_info->SsRecord.ForwardingRecord.rec_class[i].NoReplyWaitTime != 0)) {
+ ciss_result->nDivertWaitingTime[i] = ss_info->SsRecord.ForwardingRecord.rec_class[i].NoReplyWaitTime;
+ DBG("\n [CISS-ENGINE] __ciss_create_forward_result_string(Multiple %dth): No reply time=%d\n",
+ i, ciss_result->nDivertWaitingTime[i]);
+ }
+ DBG("\n [CISS-ENGINE] #########forwarding number = %s########\n\n",
+ ss_info->SsRecord.ForwardingRecord.rec_class[i].szCallForwardingNumber);
+
+ if (ss_info->SsRecord.ForwardingRecord.rec_class[i].bCallForwardingNumberPresent) {
+ _ciss_strcpy(ciss_result->szDivertNumber[i],
+ sizeof(ciss_result->szDivertNumber[i]),
+ (char *)ss_info->SsRecord.ForwardingRecord.rec_class[i].szCallForwardingNumber);
+ DBG("\n [CISS-ENGINE] #########forwarding number in response= %s########\n\n",
+ ciss_result->szDivertNumber[i]);
+ }
+ DBG("\n [CISS-ENGINE] __ciss_create_forward_result_string(Multiple %dth): Bearer = %d, Favor = %d, Status = %d, num=%s\n",
+ i, ss_info->SsRecord.ForwardingRecord.rec_class[i].TeleCommService,
+ ss_info->SsRecord.ForwardingRecord.rec_class[0].ForwardCondition,
+ ss_info->SsRecord.ForwardingRecord.rec_class[i].Status,
+ ciss_result->szDivertNumber[i]);
+ }
+ }
+
+}
+
+static void __ciss_create_barring_result_string(ciss_result_t *ciss_result /*out */, TelSsInfo_t *ss_info /*in */)
+{
+ int i;
+ /* Set Supplement service type string */
+ ciss_result->szSsType = CISS_SERVICE_BARRING;
+ ciss_result->nRecordNum = ss_info->NumberOfRecords;
+
+ if (ss_info->NumberOfRecords <= 0) {
+ DBG("\n [CISS-ENGINE] __ciss_create_barring_result_string: (ME) parameter num=0!\n");
+ /* Set Display string : Default telecommSvc, Flavor, Result */
+ ciss_result->nRecordNum = 0;
+ _ciss_get_telecomm_svc(TAPI_SS_TS_NONE, &ciss_result->szBearer[0]);
+ _ciss_get_result_status_type(TAPI_SS_STATUS_PROVISIONED, &ciss_result->szResult[0]);
+ } else {
+ /* Single or Multiple result received case.. */
+ /* In case of all barring, tapi always sends a BAOC flavor. */
+ /* So we have to get the flavor with requested data that is saved in ss_result_string structure. */
+
+ for (i = 0; i < ss_info->NumberOfRecords; i++) {
+ _ciss_get_telecomm_svc(ss_info->SsRecord.BarringRecord.rec_class[i].TeleCommService, &ciss_result->szBearer[i]);
+ _ciss_get_result_status_type(ss_info->SsRecord.BarringRecord.rec_class[i].Status, &ciss_result->szResult[i]);
+ DBG("\n [CISS-ENGINE] __ciss_tapi_handle_barring_cnf(Multiple %dth): Bearer = %d, Favor = %d, Status = %d\n",
+ i, ss_info->SsRecord.BarringRecord.rec_class[i].TeleCommService,
+ ss_info->SsRecord.BarringRecord.rec_class[i].Flavour,
+ ss_info->SsRecord.BarringRecord.rec_class[i].Status);
+ }
+ }
+}
+
+static void __ciss_create_waiting_result_string(ciss_result_t *ciss_result /*out */, TelSsInfo_t *ss_info /*in */)
+{
+ TelSsStatus_t WaitingResultStatus;
+ int i;
+ /* Check Network result & Setting Proper result string to display */
+ /* Set Supplement service type string */
+ ciss_result->szSsType = CISS_SERVICE_WAITING;
+
+ /* Call waiting setting result state
+ 1) Interrogate / Activate : all received bearers mean "Activate"
+ 2) Deactivate : All received bearers mean "Deactivate"
+ */
+ if (ss_info->SsRecord.WaitingRecord.rec_class[0].Status == TAPI_SS_STATUS_QUIESCENT)
+ WaitingResultStatus = TAPI_SS_STATUS_PROVISIONED;
+ else
+ WaitingResultStatus = TAPI_SS_STATUS_ACTIVE;
+
+ DBG("\n [CISS-ENGINE] create_waiting_result_string : WaitingResultStatus = %d", WaitingResultStatus);
+ ciss_result->nRecordNum = ss_info->NumberOfRecords;
+
+ /* Request From MMI */
+ if (ss_info->NumberOfRecords <= 0) {
+ DBG("\n [CISS-ENGINE] __ciss_create_waiting_result_string: (ME) parameter num=0!\n");
+ /* Set Display string : Default telecommSvc, Flavor, Result */
+ _ciss_get_telecomm_svc(TAPI_SS_TS_NONE, &ciss_result->szBearer[0]);
+ _ciss_get_result_status_type(TAPI_SS_STATUS_PROVISIONED, &ciss_result->szResult[0]);
+ ciss_result->nRecordNum = 0;
+ } else {
+ /* Single or Multiple result received case.. */
+ /* Set Display string : Network result value */
+
+ for (i = 0; i < ss_info->NumberOfRecords; i++) {
+ _ciss_get_telecomm_svc(ss_info->SsRecord.WaitingRecord.rec_class[i].TeleCommService, &ciss_result->szBearer[i]);
+ _ciss_get_result_status_type(WaitingResultStatus, &ciss_result->szResult[i]);
+ DBG("\n [CISS-ENGINE] __ciss_create_waiting_result_string(Multiple %dth): Bearer = %d, Status = %d\n",
+ i, ss_info->SsRecord.WaitingRecord.rec_class[i].TeleCommService,
+ ss_info->SsRecord.WaitingRecord.rec_class[i].Status);
+ }
+ }
+}
+
+static void __ciss_create_cli_result_string(ciss_result_t *ciss_result /*out */, TelSsCliRecord_t *pCliRecord /*in */)
+{
+ ciss_result->szSsType = CISS_SERVICE_IDENTIFICATION;
+ ciss_result->szFlavor = CISS_FLAVOR_NONE;
+ ciss_result->szBearer[0] = CISS_TELECOMM_SVC_NONE;
+
+ switch (pCliRecord->IdentificationType) {
+ case TAPI_CALLING_LINE_IDENTITY_PRESENTATION:
+ ciss_result->cli_type = CISS_CALLING_LINE_IDENTITY_PRESENTATION;
+ DBG("\n [CISS-ENGINE] ciss_callId_display_identification: TAPI_CALLING_LINE_IDENTITY_PRESENTATION (ciss_info.cli_record.status=%d)\n", pCliRecord->CliStatus);
+ /* CLIP : The CLIP Supplementary Service provides the called party with the possibility to receive the line identity of the calling party.
+ ** CLIP is activated with Provisioned . Generally it is provisioned by n/w.
+ ** *#30# MMI string is used to check the status:
+ ** case1: When CLIP is provisioned and activated.SS status sent by QMOCHA will be TAPI_SS_STATUS_ACTIVE.
+ ** UI should display: "Number of caller is shown" or message something like this
+ */
+
+ if ((pCliRecord->CliStatus == TAPI_CLI_STATUS_ACTIVATED) ||
+ pCliRecord->CliStatus == TAPI_CLI_STATUS_PROVISIONED) {
+ /* Display : Caller ID is shown */
+ ciss_result->szResult[0] = CISS_STATUS_ACTIVE;
+ } else {
+ /* case2: When CLIP is not provisioned. SS status sent by QMOCHA will be TAPI_SS_STATUS_NOTHING.
+ ** UI should display: "CLIP not subscribed" or message something like this.
+ ** commented by Yongseock Choi : According to our police, because of no corresponding UI string, TAPI_SS_STATUS_NOTHING and TAPI_SS_STATUS_QUIESCENT
+ ** TAPI_SS_STATUS_REGISTERED are mapped into "Caller ID is not shown".
+ */
+ /* Display : Caller ID is not shown */
+ ciss_result->szResult[0] = CISS_STATUS_NOTHING;
+ }
+ break;
+
+ case TAPI_CALLING_LINE_IDENTITY_RESTRICTION:
+ ciss_result->cli_type = CISS_CALLING_LINE_IDENTITY_RESTRICTION;
+ DBG("\n [CISS-ENGINE] ciss_callId_display_identification: TAPI_CALLING_LINE_IDENTITY_RESTRICTION (cli_status = %d)\n", pCliRecord->CliStatus);
+ /* CLIR : The CLIR Supplementary Service enables the calling party to prevent presentation of its line identity to the called party.
+ ** The CLIR Supplementary Service can be offered with one subscription option :
+ ** 1)permanent (invoked for all relevant calls) or
+ ** 2)temporary (suppressed by the user on a per call basis).
+ ** In temporary mode , defaults values are:
+ ** 1) presentation restricted: or
+ ** 2) presentation not restricted(allowed).
+ */
+ if (pCliRecord->CliStatus == TAPI_CLI_STATUS_ACTIVATED ||
+ pCliRecord->CliStatus == TAPI_CLI_STATUS_PROVISIONED ||
+ pCliRecord->CliStatus == TAPI_CLI_STATUS_TEMP_RESTRICTED) {
+ ciss_result->szResult[0] = CISS_STATUS_ACTIVE;
+ } else {
+ /* Display : My caller ID sent on calling */
+ ciss_result->szResult[0] = CISS_STATUS_NOTHING;
+ }
+ break;
+
+ case TAPI_CONNECTED_LINE_IDENTITY_PRESENTATION:
+ ciss_result->cli_type = CISS_CONNECTED_LINE_IDENTITY_PRESENTATION;
+ DBG("\n [CISS-ENGINE] ciss_callId_display_identification: TAPI_CONNECTED_LINE_IDENTITY_PRESENTATION (ciss_info.cli_record.cli_status=%d)\n", pCliRecord->CliStatus);
+ if (pCliRecord->CliStatus == TAPI_CLI_STATUS_ACTIVATED) {
+ /* Display : Answering Caller ID is shown */
+ ciss_result->szResult[0] = CISS_STATUS_ACTIVE;
+ } else {
+ /* Display : Answering Caller ID is not shown */
+ ciss_result->szResult[0] = CISS_STATUS_NOTHING;
+ }
+ break;
+
+ case TAPI_CONNECTED_LINE_IDENTITY_RESTRICTION:
+ ciss_result->cli_type = CISS_CONNECTED_LINE_IDENTITY_RESTRICTION;
+ DBG("\n [CISS-ENGINE] ciss_callId_display_identification: TAPI_CONNECTED_LINE_IDENTITY_RESTRICTION (ciss_info.cli_record.status=%d)\n", pCliRecord->CliStatus);
+ if (pCliRecord->CliStatus == TAPI_CLI_STATUS_ACTIVATED) {
+ /* Display : My caller ID not sent on answering */
+ ciss_result->szResult[0] = CISS_STATUS_ACTIVE;
+ } else {
+ /* Display : My caller ID sent on answering */
+ ciss_result->szResult[0] = CISS_STATUS_NOTHING;
+ }
+ break;
+
+ case TAPI_CALLING_NAME_PRESENTATION:
+ ciss_result->cli_type = CISS_CALLING_NAME_PRESENTATION;
+ DBG("\n [CISS-ENGINE] ciss_callId_display_identification: TAPI_CALLING_NAME_PRESENTATION (ciss_info.cli_record.status=%d)\n", pCliRecord->CliStatus);
+ if ((pCliRecord->CliStatus == TAPI_CLI_STATUS_ACTIVATED) ||
+ (pCliRecord->CliStatus == TAPI_CLI_STATUS_PROVISIONED)) {
+ /* Display : My caller name sent on answering */
+ ciss_result->szResult[0] = CISS_STATUS_ACTIVE;
+ } else {
+ /* Display : My caller name not sent on answering */
+ ciss_result->szResult[0] = CISS_STATUS_NOTHING;
+ }
+ break;
+
+ default:
+ ciss_result->cli_type = CISS_CC_VOICE_IDENTIFICATION_NONE;
+ ciss_result->szResult[0] = CISS_STATUS_NOTHING;
+ DBG("\n [CISS-ENGINE] ciss_callId_display_identification: ERROR Wrong tapi_ss_cnap_status_t = %d come. \n", pCliRecord->IdentificationType);
+ break;
+ }
+}
+
+static void __ciss_ui_mmi_create_cnap_result_string(ciss_result_t *result, char *szResult)
+{
+ switch (result->cli_type) {
+ case CISS_CALLING_LINE_IDENTITY_PRESENTATION:
+ switch (result->szResult[0]) {
+ case CISS_STATUS_ACTIVE:
+ strncpy(szResult, CISS_STR_CALLER_ID_SHOWN, CISS_USSD_DATA_SIZE_MAX - 1);
+ break;
+ case CISS_STATUS_REGISTERED:
+ case CISS_STATUS_PROVISIONED:
+ case CISS_STATUS_QUIESCENT:
+ case CISS_STATUS_NOTHING:
+ default:
+ strncpy(szResult, CISS_STR_CALLER_ID_HIDDEN, CISS_USSD_DATA_SIZE_MAX - 1);
+ break;
+ }
+ break;
+ case CISS_CALLING_LINE_IDENTITY_RESTRICTION:
+ switch (result->szResult[0]) {
+ case CISS_STATUS_ACTIVE:
+ strncpy(szResult, CISS_STR_MY_CALLER_ID_IS_NOT_SENT_WHEN_CALLING, CISS_USSD_DATA_SIZE_MAX - 1);
+ break;
+ case CISS_STATUS_REGISTERED:
+ case CISS_STATUS_PROVISIONED:
+ case CISS_STATUS_QUIESCENT:
+ case CISS_STATUS_NOTHING:
+ default:
+ strncpy(szResult, CISS_STR_MY_CALLER_ID_WILL_BE_SENT_WHEN_CALLING, CISS_USSD_DATA_SIZE_MAX - 1);
+ break;
+ }
+ break;
+ case CISS_CONNECTED_LINE_IDENTITY_PRESENTATION:
+ switch (result->szResult[0]) {
+ case CISS_STATUS_ACTIVE:
+ strncpy(szResult, CISS_STR_ANSWERING_NUMBER_IS_SHOWN_WHEN_CALLING, CISS_USSD_DATA_SIZE_MAX - 1);
+ break;
+ case CISS_STATUS_REGISTERED:
+ case CISS_STATUS_PROVISIONED:
+ case CISS_STATUS_QUIESCENT:
+ case CISS_STATUS_NOTHING:
+ default:
+ strncpy(szResult, CISS_STR_ANSWERING_NUMBER_IS_NOT_SHOWN_WHEN_CALLING, CISS_USSD_DATA_SIZE_MAX - 1);
+ break;
+ }
+ break;
+ case CISS_CONNECTED_LINE_IDENTITY_RESTRICTION:
+ switch (result->szResult[0]) {
+ case CISS_STATUS_ACTIVE:
+ strncpy(szResult, CISS_STR_MY_CALLER_ID_IS_NOT_SENT_WHEN_ANSWERING_CALLS, CISS_USSD_DATA_SIZE_MAX - 1);
+ break;
+ case CISS_STATUS_REGISTERED:
+ case CISS_STATUS_PROVISIONED:
+ case CISS_STATUS_QUIESCENT:
+ case CISS_STATUS_NOTHING:
+ default:
+ strncpy(szResult, CISS_STR_MY_CALLER_ID_WILL_BE_SENT_WHEN_ANSWERING_CALLS, CISS_USSD_DATA_SIZE_MAX - 1);
+ break;
+ }
+ break;
+ case CISS_CALLING_NAME_PRESENTATION:
+ switch (result->szResult[0]) {
+ case CISS_STATUS_ACTIVE:
+ strncpy(szResult, CISS_STR_CALLER_ID_AVAILABLE, CISS_USSD_DATA_SIZE_MAX - 1);
+ break;
+ case CISS_STATUS_REGISTERED:
+ case CISS_STATUS_PROVISIONED:
+ case CISS_STATUS_QUIESCENT:
+ case CISS_STATUS_NOTHING:
+ default:
+ strncpy(szResult, CISS_STR_CALLER_ID_RESTRICTED, CISS_USSD_DATA_SIZE_MAX - 1);
+ break;
+ }
+ break;
+ default:
+ strncpy(szResult, "Incorrect Service", CISS_USSD_DATA_SIZE_MAX - 1);
+ break;
+ }
+ DBG("\n \n [CISS-MMI] THe result String :%s\n", szResult);
+}
+
+static void __ciss_ui_mmi_create_mmi_result_string(ciss_result_t *pSSResult, int index, char *result_string)
+{
+ DBG("Enter");
+ char mszBuffer[CISS_TEXT_LEN_MAX];
+ char szBuffer[CISS_TEXT_LEN_MAX];
+ char service[CISS_TEXT_LEN_MAX];
+ char teleservice[CISS_TEXT_LEN_MAX];
+ char flavor[CISS_TEXT_LEN_MAX];
+ char status[CISS_TEXT_LEN_MAX];
+
+ _ciss_ui_mmi_get_service_name(pSSResult->szSsType, service);
+ _ciss_ui_mmi_get_flavor_name(pSSResult->szFlavor, flavor);
+ _ciss_ui_mmi_get_bearer_name(pSSResult->szSsType, pSSResult->szBearer[index], teleservice);
+ _ciss_ui_mmi_get_result_status_type(pSSResult->szSsType, pSSResult->szResult[index], status);
+
+ strncpy(mszBuffer, service, CISS_TEXT_LEN_MAX - 1);
+ mszBuffer[CISS_TEXT_LEN_MAX - 1] = '\0';
+
+ if (strlen(teleservice)) {
+ strncat(mszBuffer, "<br>", strlen("<br>"));
+ strncat(mszBuffer, " -", strlen(" -"));
+ strncat(mszBuffer, teleservice, strlen(teleservice));
+ }
+ DBG("create_result_string: Label Text(telecommSvc) = %d\n", pSSResult->szBearer[index]);
+
+ if (pSSResult->szSsType == CISS_SERVICE_DIVERTING) {
+ /* if Flavor case is 'no reply' then add timer information */
+ if ((strcmp(flavor, CISS_STR_CALL_DIVERTING_ACTIVE_C_WHEN_NOREPLY) == 0) &&
+ (pSSResult->nDivertWaitingTime[index] != 0)) {
+ snprintf(szBuffer, CISS_TEXT_LEN_MAX, "%s %02ds", flavor, pSSResult->nDivertWaitingTime[index]);
+ } else {
+ strncpy(szBuffer, flavor, CISS_TEXT_LEN_MAX - 1);
+ szBuffer[CISS_TEXT_LEN_MAX - 1] = '\0';
+ }
+
+ if (strlen(flavor) > 1) {
+ strncat(mszBuffer, "<br>", strlen("<br>"));
+ strncat(mszBuffer, " -", strlen(" -"));
+ strncat(mszBuffer, szBuffer, strlen(szBuffer));
+ }
+ DBG("\n [CISS-MMI] create_result_string: Label Text(flavor) = %s\n", flavor);
+
+ /* 4) Display Status */
+ strncat(mszBuffer, "<br>", strlen("<br>"));
+ strncat(mszBuffer, " -", strlen(" -"));
+ strncat(mszBuffer, status, strlen(szBuffer));
+
+ /* 5) Display telephone number */
+ if (strlen(pSSResult->szDivertNumber[index]) &&
+ (strcmp(status, CISS_STR_ACTIVATED) == 0)) {
+ DBG("\n [CISS-MMI] create_result_string: Call forwarding number = %s\n",
+ pSSResult->szDivertNumber[index]);
+
+ strncat(mszBuffer, "<br>", strlen("<br>"));
+ strncat(mszBuffer, " ", strlen(" "));
+ strncat(mszBuffer, pSSResult->szDivertNumber[index], strlen(pSSResult->szDivertNumber[index]));
+ } else
+ DBG("\n [CISS-MMI] create_result_string: Call forwarding number is not need");
+ } else if (pSSResult->szSsType == CISS_SERVICE_BARRING) {
+ if (strlen(flavor) > 1) {
+ strncat(mszBuffer, "<br>", strlen("<br>"));
+ strncat(mszBuffer, " -", strlen(" -"));
+ strncat(mszBuffer, flavor, strlen(flavor));
+ }
+
+ /* 4) Display Status */
+ strncat(mszBuffer, "<br>", strlen("<br>"));
+ strncat(mszBuffer, " -", strlen(" -"));
+ strncat(mszBuffer, status, strlen(status));
+ } else if (pSSResult->szSsType == CISS_SERVICE_WAITING) {
+ /* 4) Display Status */
+ strncat(mszBuffer, "<br>", strlen("<br>"));
+ strncat(mszBuffer, " -", strlen("< ->"));
+ strncat(mszBuffer, status, strlen(status));
+ }
+ strncpy(result_string, mszBuffer, CISS_USSD_DATA_SIZE_MAX - 1);
+
+ DBG("Result String:%s\n", result_string);
+ DBG("Leave");
+}
+
+static int __ciss_tapi_handle_forward_cnf(ciss_result_t *ciss_result, TelSsInfo_t *ss_info)
+{
+ DBG("\n [CISS-ENGINE] __ciss_tapi_handle_forward_cnf: TAPI_EVENT_SS_FORWARD_XXX_CNF received\n");
+ DBG("\n [CISS-ENGINE] __ciss_tapi_handle_forward_cnf(Single): Bearer = %d, Flavor = %d, Status = %d \n",
+ ss_info->SsRecord.ForwardingRecord.rec_class[0].TeleCommService,
+ ss_info->SsRecord.ForwardingRecord.rec_class[0].ForwardCondition,
+ ss_info->SsRecord.ForwardingRecord.rec_class[0].Status);
+
+ memset(ciss_result, 0, sizeof(ciss_result_t));
+ DBG("\n [CISS-ENGINE] ss_info.SsRecord.ForwardingRecord.rec_class[0].szCallForwardingNumber : %s %d",
+ ss_info->SsRecord.ForwardingRecord.rec_class[0].szCallForwardingNumber,
+ strlen((char *)ss_info->SsRecord.ForwardingRecord.rec_class[0].szCallForwardingNumber));
+ _ciss_get_forward_flavor_type(ss_info->SsRecord.ForwardingRecord.rec_class[0].ForwardCondition,
+ &(ciss_result->szFlavor));
+ __ciss_create_forward_result_string(ciss_result, ss_info);
+
+ DBG("\n [CISS-ENGINE] this->ss_req_data.flavor: %d\n", ciss_result->szFlavor);
+ DBG("\n [CISS-ENGINE] this->ss_req_data.telecommSvc: %d\n, this->ss_req_data.action: %d \n",
+ ciss_result->szBearer[0], ciss_result->szResult[0]);
+
+ return TRUE;
+}
+
+static int __ciss_tapi_handle_barring_cnf(ciss_result_t *ciss_result, TelSsInfo_t *ss_info)
+{
+ DBG("\n [CISS-ENGINE] __ciss_tapi_handle_barring_cnf: TAPI_EVENT_SS_BARRING_XXX_CNF received\n");
+ DBG("\n [CISS-ENGINE] __ciss_tapi_handle_barring_cnf(Single): Bearer = %d, Favor = %d, Status = %d\n",
+ ss_info->SsRecord.BarringRecord.rec_class[0].TeleCommService,
+ ss_info->SsRecord.BarringRecord.rec_class[0].Flavour,
+ ss_info->SsRecord.BarringRecord.rec_class[0].Status);
+
+ memset(ciss_result, 0, sizeof(ciss_result_t));
+ _ciss_get_barring_flavor_type(ss_info->SsRecord.BarringRecord.rec_class[0].Flavour, &(ciss_result->szFlavor));
+ __ciss_create_barring_result_string(ciss_result, ss_info);
+
+ return TRUE;
+}
+
+static int __ciss_tapi_handle_waiting_cnf(ciss_result_t *ciss_result /*out */, TelSsInfo_t *ss_info /*in */)
+{
+ DBG("\n [CISS-ENGINE] __ciss_tapi_handle_waiting_cnf: TAPI_EVENT_SS_WAITING_XXX_CNF received\n");
+ DBG("\n [CISS-ENGINE] __ciss_tapi_handle_waiting_cnf(Single): Bearer = %d, Status = %d\n",
+ ss_info->SsRecord.WaitingRecord.rec_class[0].TeleCommService,
+ ss_info->SsRecord.WaitingRecord.rec_class[0].Status);
+
+ memset(ciss_result, 0, sizeof(ciss_result_t));
+ __ciss_create_waiting_result_string(ciss_result, ss_info);
+
+ return TRUE;
+}
+
+static int __ciss_tapi_handle_call_id(ciss_result_t *ciss_result, TelSsInfo_t *ss_info)
+{
+ DBG("\n [CISS-ENGINE] __ciss_tapi_handle_call_id: TAPI_EVENT_SS_IDENTITY_IND received\n");
+
+ memset(ciss_result, 0, sizeof(ciss_result_t));
+ __ciss_create_cli_result_string(ciss_result, &(ss_info->SsRecord.CliRecord));
+ ciss_result->nRecordNum = 1;
+
+ return TRUE;
+}
+
+static int __ciss_create_ss_result_sting(char *ss_result_string /*out */, TelSsInfo_t *ss_info /*in */)
+{
+ DBG("Enter");
+
+ ciss_result_t ciss_result;
+ switch (ss_info->SsType) {
+ case TAPI_SS_TYPE_FORWARDING:
+ __ciss_tapi_handle_forward_cnf(&ciss_result, ss_info);
+ break;
+
+ case TAPI_SS_TYPE_BARRING:
+ __ciss_tapi_handle_barring_cnf(&ciss_result, ss_info);
+ break;
+
+ case TAPI_SS_TYPE_WAITING:
+ __ciss_tapi_handle_waiting_cnf(&ciss_result, ss_info);
+ break;
+
+ case TAPI_SS_TYPE_IDENTIFICATION:
+ __ciss_tapi_handle_call_id(&ciss_result, ss_info);
+ break;
+
+ default:
+ return -1;
+ }
+
+ memset(resultstring, 0x0, sizeof(resultstring));
+ if (ciss_result.szSsType == CISS_SERVICE_IDENTIFICATION) {
+ DBG("\n [CISS-MMI] CISS_SERVICE_IDENTIFICATION \n");
+ __ciss_ui_mmi_create_cnap_result_string(&ciss_result, resultstring[0]);
+ } else if (ciss_result.nRecordNum == 0) {
+ DBG("\n [CISS-MMI] result.nRecordNum == 0 \n");
+ strncpy(resultstring[0], CISS_STR_SUCCESS, CISS_TEXT_LEN_MAX - 1);
+ } else {
+ int g_count = 0;
+ for (g_count = 0; g_count < ciss_result.nRecordNum; g_count++) {
+ __ciss_ui_mmi_create_mmi_result_string(&ciss_result, g_count, resultstring[g_count]);
+ DBG("\n [CISS-MMI] Copying data & parsing Result string ::::::::::: %s \n", resultstring[g_count]);
+ }
+ }
+
+ int count = 0;
+
+ for (count = 0; count < ciss_result.nRecordNum; count++) {
+ strncat(ss_result_string, "<br> ", strlen("<br> "));
+ strncat(ss_result_string, resultstring[count], strlen(resultstring[count]));
+ strncat(ss_result_string, "<br> ", strlen("<br> "));
+ }
+ DBG("Final Result string : %s ", ss_result_string);
+ DBG("Leave");
+
+ return 0;
+}
+
+static void __ciss_ssresp_view_quit_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ elm_exit();
+}
+
+Evas_Object *_ciss_create_ss_resp_view(Evas_Object *parent, TelSsInfo_t *ss_info, void *data)
+{
+ DBG("Enter");
+ retv_if(parent == NULL, NULL);
+ retv_if(data == NULL, NULL);
+
+ struct appdata *ad = (struct appdata *)data;
+ Evas_Object *nf;
+ Evas_Object *l_button;
+
+ char ss_result_string[CISS_MMI_MAX_SS_RESP_STRING] = { };
+
+ if (ss_info)
+ __ciss_create_ss_result_sting(ss_result_string, ss_info);
+ else
+ snprintf(ss_result_string, CISS_MMI_MAX_SS_RESP_STRING, "%s", CISS_STR_SUCCESS);
+
+ nf = elm_naviframe_add(parent);
+ retv_if(nf == NULL, NULL);
+
+ Evas_Object *genlist =
+ _ciss_create_result_genlist(ss_result_string, CISS_MMI_MAX_SS_RESP_STRING, nf, ad);
+ retv_if(NULL == genlist, NULL);
+
+ l_button = elm_button_add(nf);
+ evas_object_smart_callback_add(l_button, "clicked",
+ __ciss_ssresp_view_quit_cb, NULL);
+
+ elm_naviframe_item_push(nf, CISS_STR_INFORMATION,
+ l_button, NULL, genlist, NULL);
+ elm_object_style_set(l_button, "naviframe/back_btn/default");
+
+ evas_object_show(nf);
+
+ DBG("Leave");
+ return nf;
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * This file is part of <ciss>
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use it only in accordance
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability of the software,
+ * either express or implied, including but not limited to the implied warranties of merchantability,
+ * fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,
+ * modifying or distributing this software or its derivatives.
+ *
+ */
+
+#include "ciss-respnd.h"
+#include "ciss-common.h"
+#include "ciss-widget.h"
+#include <TapiEvent.h>
+#include <Ecore_IMF.h>
+
+typedef enum {
+ BT_KOR_MODE = 0,
+ BT_CHINESE_MODE = 1, /* Not support yet */
+ BT_ENG_LOWER_MODE = 2,
+ BT_ENG_UPPER_MODE = 3,
+ BT_NUMBER_MODE = 4,
+ BT_SYMBOL_MODE = 5,
+ BT_SYMBOL2_MODE = 6,
+ BT_SYMBOL3_MODE = 7,
+ BT_JAPANESE_MODE = 8,
+ BT_ENV_MODE = 9
+} ciss_ime_mode_t;
+
+static Elm_Entry_Filter_Limit_Size limit_filter_data;
+
+static void __ciss_respond_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ DBG("coming inside __ciss_respond_cb \n");
+ int ret;
+ char *buf;
+ char ussd_str[TAPI_SS_USSD_DATA_SIZE_MAX] = {0, };
+ int pRequestId = 0;
+ Ecore_IMF_Context *imf_context;
+ Evas_Object *error_popup;
+ struct appdata *ad = (struct appdata *)data;
+
+ buf = (char *)elm_entry_entry_get(ad->ef_entry);
+ imf_context = elm_entry_imf_context_get(ad->ef_entry);
+ if (imf_context)
+ ecore_imf_context_input_panel_hide(imf_context);
+
+ snprintf(ussd_str, TAPI_SS_USSD_DATA_SIZE_MAX, "%s", buf);
+ if (strlen(ussd_str) == 0) {
+ error_popup = _ciss_create_popup(ad->nf, CISS_STR_ENTER_NUMBER);
+ evas_object_show(error_popup);
+ return;
+ }
+
+ DBG("The data is %s %d \n", ussd_str, strlen(buf));
+
+ TelSsUssdMsgInfo_t ussdRspRecord;
+ memset(&ussdRspRecord, 0, sizeof(TelSsUssdMsgInfo_t));
+ strncpy(ussdRspRecord.szUssdString, ussd_str, sizeof(ussdRspRecord.szUssdString) - 1);
+ ussdRspRecord.szUssdString[strlen(ussdRspRecord.szUssdString)] = '\0';
+ ussdRspRecord.UssdStringLength = strlen(ussdRspRecord.szUssdString);
+ ad->popup = _ciss_create_noti_popup(ad->win_main,
+ CISS_STR_REQUESTING, NULL, POPUP_DISPLAY_DURATION, ad);
+ ret = tel_send_ss_ussd_response(&ussdRspRecord, &pRequestId);
+
+ DBG("The value of ret is %d and request id is %d \n", ret, pRequestId);
+ ad->request_id = pRequestId; /* of no use as of now */
+}
+
+static void __ciss_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ ret_if(NULL == data);
+
+ struct appdata *ad = (struct appdata *)data;
+ Evas_Object *editfield = ad->ef_layout;
+ Elm_Object_Item *navi_it = elm_naviframe_top_item_get(ad->nf);
+ ret_if(!navi_it);
+
+ if (elm_object_focus_get(editfield)) {
+ Evas_Object *btn = elm_object_item_part_content_get(navi_it,
+ "title_right_btn");
+
+ if (elm_entry_is_empty(obj)) {
+ elm_object_signal_emit(editfield, "elm,state,eraser,hide", "elm");
+ if (btn)
+ elm_object_disabled_set(btn, EINA_TRUE);
+ } else {
+ elm_object_signal_emit(editfield, "elm,state,eraser,show", "elm");
+ if (btn)
+ elm_object_disabled_set(btn, EINA_FALSE);
+ }
+ }
+}
+
+static void __ciss_focused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ ret_if(NULL == data);
+ struct appdata *ad = (struct appdata *)data;
+ Evas_Object *editfield = ad->ef_layout;
+
+ if (!elm_entry_is_empty(obj))
+ elm_object_signal_emit(editfield, "elm,state,eraser,show", "elm");
+ elm_object_signal_emit(editfield, "elm,state,guidetext,hide", "elm");
+}
+
+static void __ciss_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ ret_if(NULL == data);
+ struct appdata *ad = (struct appdata *)data;
+ Evas_Object *editfield = ad->ef_layout;
+
+ if (elm_entry_is_empty(obj))
+ elm_object_signal_emit(editfield, "elm,state,guidetext,show", "elm");
+ elm_object_signal_emit(editfield, "elm,state,eraser,hide", "elm");
+}
+
+static void __ciss_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ elm_entry_entry_set(data, "");
+}
+
+static Evas_Object *__ciss_editfield_add(Evas_Object *parent, void *data)
+{
+ retv_if(data == NULL, NULL);
+ struct appdata *ad = (struct appdata *)data;
+
+ Evas_Object *layout = NULL;
+ Evas_Object *entry = NULL;
+
+ layout = elm_layout_add(parent);
+ ad->ef_layout = layout;
+ elm_layout_theme_set(layout, "layout", "editfield", "title");
+
+ entry = elm_entry_add(parent);
+ ad->ef_entry = entry;
+ elm_entry_scrollable_set(entry, EINA_TRUE);
+ elm_entry_single_line_set(entry, EINA_TRUE);
+
+ limit_filter_data.max_char_count = 0;
+ limit_filter_data.max_byte_count = TAPI_SS_USSD_DATA_SIZE_MAX;
+ elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter_data);
+ evas_object_smart_callback_add(entry, "changed", __ciss_changed_cb, ad);
+ evas_object_smart_callback_add(entry, "focused", __ciss_focused_cb, ad);
+ evas_object_smart_callback_add(entry, "unfocused", __ciss_unfocused_cb, ad);
+ evas_object_show(entry);
+
+ elm_object_part_content_set(layout, "elm.swallow.content", entry);
+ elm_object_part_text_set(layout, "elm.text", CISS_STR_ENTER_NUMBER);
+ elm_object_signal_callback_add(layout, "elm,eraser,clicked", "elm", __ciss_eraser_clicked_cb, entry);
+ elm_object_focus_set(entry, EINA_TRUE);
+
+ return layout;
+}
+
+static Evas_Object *__ciss_gl_content_respond_ime(void *data, Evas_Object *obj, const char *part)
+{
+ Evas_Object *editfield = NULL;
+
+ if (!strcmp(part, "elm.icon")) {
+ editfield = __ciss_editfield_add(obj, data);
+ return editfield;
+ }
+
+ return NULL;
+}
+
+static Evas_Object *__ciss_respond_ime_genlist(void *data)
+{
+ Elm_Object_Item *item = NULL;
+ Evas_Object *genlist;
+ struct appdata *ad = (struct appdata *)data;
+
+ genlist = elm_genlist_add(ad->nf);
+
+ ad->itc_ime->item_style = "1icon";
+ ad->itc_ime->func.text_get = NULL;
+ ad->itc_ime->func.content_get = __ciss_gl_content_respond_ime;
+ ad->itc_ime->func.state_get = NULL;
+ ad->itc_ime->func.del = NULL;
+
+ item = elm_genlist_item_append(genlist, ad->itc_ime,
+ (void *)ad, NULL, ELM_GENLIST_ITEM_NONE,
+ NULL, NULL);
+ return genlist;
+}
+
+void _ciss_create_respond_view(void *data)
+{
+ DBG("Enter");
+ struct appdata *ad = (struct appdata *)data;
+ Evas_Object *ime_genlist;
+ Elm_Object_Item *navi_it = NULL;
+ Evas_Object *btn = NULL;
+
+ ime_genlist = __ciss_respond_ime_genlist(ad);
+
+ _ciss_remove_naviframe(ad->nf);
+ navi_it = elm_naviframe_item_push(ad->nf, CISS_STR_INFORMATION,
+ NULL, NULL, ime_genlist, "1line");
+
+ btn = _cst_create_title_btn(ad->nf, CISS_STR_QUIT,
+ _ciss_ussd_quit_cb, (void *)ad);
+ elm_object_item_part_content_set(navi_it, "title_left_btn", btn);
+
+ btn = _cst_create_title_btn(ad->nf, CISS_STR_REPLY,
+ __ciss_respond_cb, (void *)ad);
+ elm_object_item_part_content_set(navi_it, "title_right_btn", btn);
+ elm_object_disabled_set(btn, EINA_TRUE);
+}
--- /dev/null
+/*
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * This file is part of <ciss>
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use it only in accordance
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability of the software,
+ * either express or implied, including but not limited to the implied warranties of merchantability,
+ * fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,
+ * modifying or distributing this software or its derivatives.
+ *
+ */
+
+#include <TapiEvent.h>
+#include <ITapiSs.h>
+#include <ITapiSat.h>
+#include <TapiCommon.h>
+#include "ciss-tapi-request.h"
+#include "ciss-parser.h"
+#include "ciss-util.h"
+#include "vconf.h"
+#include "ciss-debug.h"
+#include "ciss-string.h"
+#include "ciss-widget.h"
+#include "ciss-ussd.h"
+#include "ciss-resp.h"
+#include "ciss-converter.h"
+
+typedef struct _EventHandler {
+ int event_type;
+ unsigned int event_id;
+ TelAppCallback func;
+} EventHandler;
+
+EventHandler event_list[] = {
+ {TAPI_EVENT_SS_BARRING_CHANGEPASS_CNF, 0, _ciss_on_tapi_ss_event},
+ {TAPI_EVENT_SS_BARRING_CNF, 0, _ciss_on_tapi_ss_event},
+ {TAPI_EVENT_SS_BARRING_QUERYSTATUS_CNF, 0, _ciss_on_tapi_ss_event},
+ {TAPI_EVENT_SS_CLI_QUERYSTATUS_CNF, 0, _ciss_on_tapi_ss_event},
+ {TAPI_EVENT_SS_FORWARD_CNF, 0, _ciss_on_tapi_ss_event},
+ {TAPI_EVENT_SS_FORWARD_QUERYSTATUS_CNF, 0, _ciss_on_tapi_ss_event},
+ {TAPI_EVENT_SS_USSD_CANCEL_CNF, 0, _ciss_on_tapi_ussd_event},
+ {TAPI_EVENT_SS_USSD_CNF, 0, _ciss_on_tapi_ussd_event},
+ {TAPI_EVENT_SS_WAITING_CNF, 0, _ciss_on_tapi_ss_event},
+ {TAPI_EVENT_SS_WAITING_QUERYSTATUS_CNF, 0, _ciss_on_tapi_ss_event},
+ {TAPI_EVENT_SAT_SEND_SS_IND, 0, _ciss_on_tapi_sat_ss_event},
+ {TAPI_EVENT_SAT_SEND_USSD_IND, 0, _ciss_on_tapi_sat_ussd_event},
+ {TAPI_EVENT_SS_REL_COMP_MSG_NOTIFY, 0, _ciss_on_tapi_ss_rel_complete_noti},
+};
+
+int _ciss_tapi_event_setup(struct appdata *ad)
+{
+ DBG("Enter");
+ int i = 0;
+ int len = 0;
+ int api_err = -1;
+
+ len = sizeof(event_list) / sizeof(EventHandler);
+
+ if (tel_init() == 0) {
+ for (i = 0; i < len; i++) {
+ tel_register_event(event_list[i].event_type, &(event_list[i].event_id), event_list[i].func, (void *)ad);
+ }
+
+ if ((api_err = tel_register_app_name("org.tizen.ciss-mmi")) != TAPI_API_SUCCESS)
+ DBG("tel_register_app_name failed error=%d", api_err);
+ } else
+ DBG("TelTapiInitEcore() failed.");
+
+ DBG("Leave");
+ return 0;
+}
+
+void _ciss_deregister_tel_event(void)
+{
+ DBG("Enter");
+ int len, ret, i;
+
+ len = sizeof(event_list) / sizeof(EventHandler);
+
+ for (i = 0; i < len; i++) {
+ ret = tel_deregister_event(event_list[i].event_id);
+ if (ret != TAPI_API_SUCCESS)
+ DBG("tel_deregister_event error=%d", ret);
+ }
+
+ ret = tel_deinit();
+ if (ret != TAPI_API_SUCCESS)
+ DBG("TAPI delinit() ret : %d", ret);
+}
+
+ciss_err_t _ciss_send_tapi_request(ciss_mmi_context_t *mmi_ctx)
+{
+ DBG("Enter");
+
+ TelSsUssdMsgInfo_t stUssdRecord;
+ TelSsForwardInfo_t stCfActReq;
+ TelSsCallBarringInfo_t stCbReq;
+ TelSsWaitingInfo_t stCwReq;
+ int RequestId;
+ TapiResult_t err = TAPI_API_SUCCESS;
+ ciss_err_t error_code = CISS_ERR_NONE;
+
+ if (mmi_ctx->ss_type == TAPI_SS_TYPE_FORWARDING) {
+ memset(&stCfActReq, 0, sizeof(TelSsForwardInfo_t));
+ stCfActReq.Condition = TAPI_SS_FORWARD_WHEN_UNCONDITIONAL_EV;
+ stCfActReq.Condition = (TelSsForwardWhen_t) mmi_ctx->ss_flavor;
+ DBG("\n [CISS-ENGINE] ss_flavor= %d,%d", stCfActReq.Condition, mmi_ctx->ss_flavor);
+
+ _ciss_get_tapi_forward_type(mmi_ctx->tapi_bsg, &stCfActReq.Type);
+ stCfActReq.NoReplyConditionTimer = mmi_ctx->nr_timer;
+ strncpy((char *)stCfActReq.szPhoneNumber, mmi_ctx->divert_number, CISS_NUMBER_LEN_MAX);
+ stCfActReq.szPhoneNumber[CISS_NUMBER_LEN_MAX] = '\0';
+ } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_BARRING) {
+ memset(&stCbReq, 0, sizeof(TelSsCallBarringInfo_t));
+ stCbReq.Type = (TelSsCallBarType_t) mmi_ctx->ss_flavor;
+ DBG("\n [CISS-ENGINE] ss_flavor= %d,%d", stCbReq.Type, mmi_ctx->ss_flavor);
+ _ciss_get_tapi_call_type(mmi_ctx->tapi_bsg, &stCbReq.CallType);
+ memcpy(&stCbReq.szPassword, mmi_ctx->ss_password, CISS_MAX_PASSWORD_LEN);
+ } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_WAITING) {
+ memset(&stCwReq, 0, sizeof(TelSsWaitingInfo_t));
+ _ciss_get_tapi_call_type(mmi_ctx->tapi_bsg, &stCwReq.CallType);
+ }
+ switch (mmi_ctx->opcode) {
+ case registerSS:
+ DBG("registerSS");
+ /* send a register request */
+ if (mmi_ctx->ss_type == TAPI_SS_TYPE_FORWARDING) {
+ stCfActReq.Mode = TAPI_CALL_FORWARD_MODE_REGISTRATION_EV;
+
+ err = tel_set_ss_forward(&stCfActReq, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_set_ss_forward : REGISTRATION call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_set_ss_forward : REGISTRATION call fails request ID = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_BARRING) {
+
+ stCbReq.Mode = TAPI_SS_CALL_BAR_ACTIVATE;
+
+ err = tel_set_ss_barring(&stCbReq, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_set_ss_barring : ACTIVATE call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_set_ss_barring : ACTIVATE call fails request ID = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_WAITING) {
+ stCwReq.Mode = TAPI_SS_CW_ACTIVATE;
+ err = tel_set_ss_waiting(&stCwReq, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_set_ss_waiting : ACTIVATION call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_set_ss_waiting : ACTIVATION call fails request ID = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ }
+ break;
+ case eraseSS:
+ DBG("eraseSS");
+ /* send an erase command */
+ if (mmi_ctx->ss_type == TAPI_SS_TYPE_FORWARDING) {
+ stCfActReq.Mode = TAPI_CALL_FORWARD_MODE_ERASURE_EV;
+
+ err = tel_set_ss_forward(&stCfActReq, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_set_ss_forward : DE-REGISTRATION call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_set_ss_forward : DE-REGISTRATION call fails request = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_BARRING) {
+ stCbReq.Mode = TAPI_SS_CALL_BAR_DEACTIVATE;
+
+ err = tel_set_ss_barring(&stCbReq, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_set_ss_barring : DEACTIVATE call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_set_ss_barring : DEACTIVATE call fails request ID = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_WAITING) {
+ stCwReq.Mode = TAPI_SS_CW_DEACTIVATE;
+
+ err = tel_set_ss_waiting(&stCwReq, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_set_ss_waiting : DEACTIVATION call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_set_ss_waiting : DEACTIVATION call fails request ID = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ }
+ break;
+ case activateSS:
+ DBG("activateSS");
+ /* send an activate request */
+ if (mmi_ctx->ss_type == TAPI_SS_TYPE_FORWARDING) {
+ stCfActReq.Mode = TAPI_CALL_FORWARD_MODE_ENABLE_EV;
+
+ err = tel_set_ss_forward(&stCfActReq, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_set_ss_forward : ACTIVATE call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_set_ss_forward : ACTIVATE call fails request ID = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_BARRING) {
+ stCbReq.Mode = TAPI_SS_CALL_BAR_ACTIVATE;
+
+ err = tel_set_ss_barring(&stCbReq, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_set_ss_barring : ACTIVATE call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_set_ss_barring : ACTIVATE call fails request ID = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+
+ } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_WAITING) {
+ stCwReq.Mode = TAPI_SS_CW_ACTIVATE;
+
+ err = tel_set_ss_waiting(&stCwReq, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_set_ss_waiting : ACTIVATION call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_set_ss_waiting : ACTIVATION call fails request ID = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_IDENTIFICATION) {
+ DBG("\n [CISS-ENGINE] Don't activated CLI option");
+ error_code = CISS_ERR_ILLEGAL_SS_OPER;
+ return error_code;
+ }
+ break;
+ case deactivateSS:
+ DBG("deactivateSS");
+ /* deactivate request */
+ if (mmi_ctx->ss_type == TAPI_SS_TYPE_FORWARDING) {
+ stCfActReq.Mode = TAPI_CALL_FORWARD_MODE_DISABLE_EV;
+ err = tel_set_ss_forward(&stCfActReq, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_set_ss_forward : DEACTIVATE call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_set_ss_forward : DEACTIVATE call fails request ID = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_BARRING) {
+ stCbReq.Mode = TAPI_SS_CALL_BAR_DEACTIVATE;
+
+ DBG("\n [CISS-ENGINE] **** ss_mode = %d\n", stCbReq.Mode);
+ DBG("\n [CISS-ENGINE] **** flavor = %d\n", stCbReq.Type);
+ DBG("\n [CISS-ENGINE] **** call type = %d\n", stCbReq.CallType);
+ DBG("\n [CISS-ENGINE] **** Pwd = %s\n", stCbReq.szPassword);
+
+ err = tel_set_ss_barring(&stCbReq, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_set_ss_barring : DEACTIVATE call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_set_ss_barring : DEACTIVATE call fails request ID = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_WAITING) {
+ stCwReq.Mode = TAPI_SS_CW_DEACTIVATE;
+ err = tel_set_ss_waiting(&stCwReq, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_set_ss_waiting : ACTIVATION call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_set_ss_waiting : ACTIVATION call fails request ID = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ }
+ break;
+ case interrogateSS:
+ DBG("interrogateSS");
+ /* interrogate request */
+ if (mmi_ctx->ss_type == TAPI_SS_TYPE_FORWARDING) {
+ err = tel_get_ss_forward_status(stCfActReq.Type, stCfActReq.Condition, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_get_ss_forward_status call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_get_ss_forward_status : CHECK_STATUS call fails request ID = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_BARRING) {
+ err = tel_get_ss_barring_status(stCbReq.Type, stCbReq.CallType, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_get_ss_barring_status call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_get_ss_barring_status : CHECK_STATUS call fails request ID = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_WAITING) {
+ err = tel_get_ss_waiting_status(stCwReq.CallType, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_get_ss_waiting_status call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_get_ss_waiting_status : fails request ID = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_IDENTIFICATION) {
+ err = tel_get_ss_cli_status(mmi_ctx->ss_flavor, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_get_ss_cli_status call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_get_ss_cli_status : fails request ID = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ }
+ break;
+ case registerPassword:
+ DBG("registerPassword");
+ /* password registration request */
+ /* check for too short password and mismatch password */
+ if (CISS_MAX_PASSWORD_LEN > strlen(mmi_ctx->ss_password) ||
+ CISS_MAX_PASSWORD_LEN > strlen(mmi_ctx->ss_new_password) ||
+ CISS_MAX_PASSWORD_LEN > strlen(mmi_ctx->ss_new_password2)) {
+ /* too short password */
+ DBG("\n [CISS-ENGINE] Too short password");
+ error_code = CISS_ERR_CB_PWD_TOO_SORT;
+ return error_code;
+ }
+
+ err = tel_change_ss_barring_password(mmi_ctx->ss_password, mmi_ctx->ss_new_password, mmi_ctx->ss_new_password2, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_change_ss_barring_password call request ID = %d", RequestId);
+ DBG("\n [CISS-ENGINE] tel_change_ss_barring_password call fails g_err_code = %x", err);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ break;
+ case processUnstructuredSS_Request:
+ DBG("processUnstructuredSS_Request");
+ memset(&stUssdRecord, 0, sizeof(TelSsUssdMsgInfo_t));
+ stUssdRecord.UssdStringLength = strlen(mmi_ctx->user_string);
+
+ _ciss_strcpy(stUssdRecord.szUssdString, sizeof(stUssdRecord.szUssdString), (char *)mmi_ctx->user_string);
+
+ DBG("\n [CISS-ENGINE] string_length = %d, stUssdRecord.ussd_string = %s", stUssdRecord.UssdStringLength, stUssdRecord.szUssdString);
+
+ err = tel_send_ss_ussd_request(&stUssdRecord, &RequestId);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_send_ss_ussd_request call fails g_err_code = %x", err);
+ DBG("\n [CISS-ENGINE] tel_send_ss_ussd_request :call fails request ID = %d", RequestId);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ return error_code;
+ }
+ break;
+ default:
+ error_code = CISS_ERR_UNKNOWN;
+ DBG("\n [CISS-ENGINE] Invalid Parsed opcode = %d",
+ mmi_ctx->opcode);
+
+ break;
+ }
+
+#if 0
+#ifndef CF_TEST
+ /* Because tapi sends the CF no reply data for All CF and All conditional CF , we have to make a result flavor with requested data here */
+ if (mmi_ctx->ss_type == TAPI_SS_TYPE_FORWARDING) {
+ memset(&this->ss_result_string, 0, sizeof(ciss_result_t));
+ _ciss_get_forward_flavor_type(mmi_ctx->ss_flavor, &this->ss_result_string.szFlavor);
+
+ if (opcode == eraseSS) {
+ this->ss_req_data.telecommSvc = mmi_ctx->tapi_bsg;
+ this->ss_req_data.service = CISS_SERVICE_DIVERTING;
+ this->ss_req_data.flavor = mmi_ctx->ss_flavor;
+ this->ss_req_data.action = CISS_ACTION_DEACTIVATE;
+ DBG("\n [CISS-ENGINE] this->ss_req_data.action : %d\n", this->ss_req_data.action);
+ DBG("\n [CISS-ENGINE] this->ss_req_data.flavor : %d\n", this->ss_req_data.flavor);
+ DBG("\n [CISS-ENGINE] this->ss_req_data.telecommSvc : %d\n", this->ss_req_data.telecommSvc);
+ DBG("\n [CISS-ENGINE] this->ss_req_data.service : %d\n", this->ss_req_data.service);
+ }
+
+ DBG("\n [CISS-ENGINE] Forwarding: Requested ss_flavor =%d\n", this->ss_result_string.szFlavor);
+ } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_BARRING) {
+ memset(&this->ss_result_string, 0, sizeof(ciss_result_t));
+ _ciss_get_barring_flavor_type(mmi_ctx->ss_flavor, &this->ss_result_string.szFlavor);
+
+ DBG("\n [CISS-ENGINE] Barring: Requested ss_flavor =%d\n", this->ss_result_string.szFlavor);
+ }
+#endif
+#endif
+ DBG("Leave");
+ return error_code;
+}
+
+int _ciss_on_tapi_sat_ss_event(const TelTapiEvent_t *event, void *data)
+{
+ DBG("Enter");
+ retv_if(event == NULL, -1);
+ retv_if(data == NULL, -1);
+
+ int ret = -1;
+ struct appdata *ad = (struct appdata *)data;
+
+ DBG("event type=0x%x status=0x%x pDataLen=%d is_sat=%d",event->EventType, event->Status, event->pDataLen, ad->is_sat_request);
+
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+
+ TelSatSendSsIndSsData_t send_ss_info;
+ if (event->pDataLen > 0) {
+ memcpy(&send_ss_info, event->pData, sizeof(TelSatSendSsIndSsData_t));
+
+ if (send_ss_info.ssStringLen > 0) {
+ ciss_err_t ciss_err_code;
+ ad->is_sat_request = EINA_TRUE;
+ ad->rel_comp_msg_len = 0;
+ ad->cmd_id = send_ss_info.commandId;
+ ciss_mmi_context_t mmi_ctx;
+ ciss_err_code = _ciss_parse_req_string((char *)send_ss_info.ssString, &mmi_ctx);
+
+ if (ciss_err_code == CISS_ERR_NONE) {
+ ciss_err_code = _ciss_send_tapi_request(&mmi_ctx);
+ ret = 0;
+ } else {
+ TelSatAppsRetInfo_t app_ret_info;
+ app_ret_info.commandId = ad->cmd_id;
+ app_ret_info.commandType = TAPI_SAT_CMD_TYPE_SEND_SS;
+
+ app_ret_info.appsRet.sendSs.resp = TAPI_SAT_R_NETWORK_UNABLE_TO_PROCESS_COMMAND;
+ app_ret_info.appsRet.sendSs.ssString.stringLen = 0;
+ ret = tel_send_sat_app_exec_result(&app_ret_info);
+ elm_exit();
+ }
+ }
+ }
+ DBG("Leave");
+ return ret;
+}
+
+int _ciss_on_tapi_sat_ussd_event(const TelTapiEvent_t *event, void *data)
+{
+ DBG("Enter");
+ retv_if(event == NULL, -1);
+ retv_if(data == NULL, -1);
+
+ int ret = -1;
+ struct appdata *ad = (struct appdata *)data;
+
+ DBG("event type=0x%x status=0x%x pDataLen=%d is_sat=%d", event->EventType, event->Status, event->pDataLen, ad->is_sat_request);
+
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+
+ TelSatSendUssdIndUssdData_t send_ussd_info;
+ if (event->pDataLen > 0) {
+ memcpy(&send_ussd_info, event->pData, sizeof(TelSatSendUssdIndUssdData_t));
+
+ if (send_ussd_info.ussdStringLen > 0) {
+ int req_id;
+ ad->is_sat_request = EINA_TRUE;
+ ad->cmd_id = send_ussd_info.commandId;
+ TelSsUssdMsgInfo_t ussd_info;
+ ussd_info.UssdStringLength = send_ussd_info.ussdStringLen;
+ if (ussd_info.UssdStringLength >0)
+ memcpy(&ussd_info.szUssdString, send_ussd_info.ussdString, ussd_info.UssdStringLength);
+ ret = tel_send_ss_ussd_request(&ussd_info, &req_id);
+ }
+ }
+ DBG("Leave, return=%d", ret);
+ return ret;
+}
+
+int _ciss_on_tapi_ss_rel_complete_noti(const TelTapiEvent_t *event, void *data)
+{
+ DBG("Enter");
+ retv_if(event == NULL, -1);
+ retv_if(data == NULL, -1);
+
+ struct appdata *ad = (struct appdata *)data;
+ TelSsRelCompMsgInfo_t rel_comp_info;
+
+ DBG("event type=0x%x status=0x%x pDataLen=%d is_sat=%d",event->EventType, event->Status, event->pDataLen, ad->is_sat_request);
+ ad->rel_comp_msg_len = 0;
+
+ if (ad->is_sat_request == EINA_TRUE) {
+ if (event->pDataLen > 0) {
+ memcpy(&rel_comp_info, event->pData, event->pDataLen);
+ if (rel_comp_info.RelCompMsgLen > 0) {
+ memcpy(ad->rel_comp_msg, rel_comp_info.szRelCompMsg, rel_comp_info.RelCompMsgLen);
+ ad->rel_comp_msg_len = rel_comp_info.RelCompMsgLen;
+ }
+ }
+ }
+ return 0;
+}
+
+int _ciss_on_tapi_ss_event(const TelTapiEvent_t *event, void *data)
+{
+ DBG("Enter");
+ retv_if(event == NULL, -1);
+ retv_if(data == NULL, -1);
+
+ struct appdata *ad = (struct appdata *)data;
+ TelSsInfo_t ss_info;
+ int ret = -1;
+
+ DBG("event type=0x%x status=0x%x pDataLen=%d is_sat=%d", event->EventType, event->Status, event->pDataLen, ad->is_sat_request);
+
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+
+ if (ad->is_sat_request == EINA_TRUE) {
+ TelSatAppsRetInfo_t app_ret_info;
+ app_ret_info.commandId = ad->cmd_id;
+ app_ret_info.commandType = TAPI_SAT_CMD_TYPE_SEND_SS;
+
+ if (event->Status == TAPI_SS_SUCCESS) {
+ app_ret_info.appsRet.sendSs.resp = TAPI_SAT_R_SUCCESS;
+
+ if (ad->rel_comp_msg_len >0) {
+ memcpy(app_ret_info.appsRet.sendSs.ssString.string, ad->rel_comp_msg, ad->rel_comp_msg_len);
+ app_ret_info.appsRet.sendSs.ssString.stringLen = ad->rel_comp_msg_len;
+ } else
+ app_ret_info.appsRet.sendSs.ssString.stringLen = 0;
+ } else {
+ app_ret_info.appsRet.sendSs.resp = TAPI_SAT_R_SS_RETURN_ERROR;
+ app_ret_info.appsRet.sendSs.ssCause = event->Status;
+ }
+ ret = tel_send_sat_app_exec_result(&app_ret_info);
+
+ elm_exit();
+ } else {
+ /* create window */
+ Evas_Object *content;
+
+ DBG("win=0x%p main=0x%p",ad->win_main, ad->layout_main);
+
+ if (ad->win_main == NULL) {
+ Evas_Object *win;
+ win = _ciss_create_win(PACKAGE);
+ ad->win_main = win;
+ retv_if(ad->win_main == NULL, -1);
+ ad->end_key_event_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _ciss_on_end_key_down, NULL);
+ evas_object_show(win);
+ }
+
+ DBG("win=0x%p main=0x%p", ad->win_main, ad->layout_main);
+
+ if (event->Status == TAPI_SS_SUCCESS) {
+ if (ad->bg == NULL) {
+ ad->bg = _ciss_create_bg(ad->win_main);
+ retv_if(ad->bg == NULL, -1);
+ }
+
+ if (ad->layout_main == NULL) {
+ ad->layout_main = _ciss_create_layout_main(ad->win_main);
+ retv_if(ad->layout_main== NULL, -1);
+ }
+ DBG("win=0x%p main=0x%p", ad->win_main, ad->layout_main);
+
+ if (event->pDataLen > 0) {
+ memcpy(&ss_info, event->pData, sizeof(TelSsInfo_t));
+ if (event->EventType == TAPI_EVENT_SS_CLI_QUERYSTATUS_CNF &&
+ ss_info.SsType == TAPI_SS_TYPE_BARRING) {
+ ss_info.SsType = TAPI_SS_TYPE_IDENTIFICATION;
+ }
+ content = (Evas_Object *)_ciss_create_ss_resp_view(ad->layout_main, &ss_info, ad);
+ } else {
+ content = (Evas_Object *)_ciss_create_ss_resp_view(ad->layout_main, NULL, ad);
+ }
+ retv_if(content == NULL, -1);
+ elm_object_part_content_set(ad->layout_main, "elm.swallow.content", content);
+ } else {
+ ciss_err_t ciss_err;
+ _ciss_get_error_from_tapi_error(&ciss_err, event->Status);
+ _ciss_create_error_popup(ad->win_main, ciss_err, 2.0, ad);
+ }
+
+ ret = 0;
+ }
+
+ DBG("Leave");
+ return ret;
+}
+
+int _ciss_on_tapi_ussd_event(const TelTapiEvent_t *event, void *data)
+{
+ DBG("Enter");
+ retv_if(event == NULL, -1);
+ retv_if(data == NULL, -1);
+
+ struct appdata *ad = (struct appdata *)data;
+ TelSsUssdMsgIndInfo_t ussd_info;
+ int ret = -1;
+
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+
+ DBG("event type=0x%x status=0x%x pDataLen=%d is_sat=%d", event->EventType, event->Status, event->pDataLen, ad->is_sat_request);
+ if (ad->is_sat_request == EINA_TRUE)
+ {
+ TelSatAppsRetInfo_t app_ret_info;
+ app_ret_info.commandId = ad->cmd_id;
+ app_ret_info.commandType = TAPI_SAT_CMD_TYPE_SEND_USSD;
+
+ if (event->Status == TAPI_SS_SUCCESS) {
+ if (event->pDataLen > 0)
+ memcpy(&ussd_info, event->pData, sizeof(TelSsUssdMsgIndInfo_t));
+
+ app_ret_info.appsRet.sendUssd.resp = TAPI_SAT_R_SUCCESS;
+ app_ret_info.appsRet.sendUssd.ussdString.stringLen = ussd_info.UssdInfo.UssdStringLength;
+ if (app_ret_info.appsRet.sendUssd.ussdString.stringLen > 0)
+ memcpy(app_ret_info.appsRet.sendUssd.ussdString.string, ussd_info.UssdInfo.szUssdString, ussd_info.UssdInfo.UssdStringLength);
+ } else {
+ app_ret_info.appsRet.sendUssd.resp = TAPI_SAT_R_USSD_RETURN_ERROR;
+ app_ret_info.appsRet.sendUssd.ssCause = event->Status;
+ }
+
+ tel_send_sat_app_exec_result(&app_ret_info);
+ ret = 0;
+ elm_exit();
+ } else {
+ /* create window */
+ Evas_Object *content;
+
+ if (ad->win_main == NULL) {
+ Evas_Object *win;
+ win = _ciss_create_win(PACKAGE);
+ retv_if(win == NULL, -1);
+ ad->win_main = win;
+ evas_object_show(win);
+ ad->end_key_event_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _ciss_on_end_key_down, NULL);
+ }
+
+ if (event->Status == TAPI_SS_SUCCESS) {
+ if (event->pDataLen > 0)
+ memcpy(&ussd_info, event->pData, sizeof(TelSsUssdMsgIndInfo_t));
+ else {
+ DBG("Telephony USSD data is empty");
+ return -1;
+ }
+
+ if (ad->bg == NULL) {
+ ad->bg = _ciss_create_bg(ad->win_main);
+ retv_if(ad->bg == NULL, -1);
+ }
+
+ if (ad->layout_main == NULL) {
+ Evas_Object *lo;
+ lo = _ciss_create_layout_main(ad->win_main);
+ retv_if(lo == NULL, -1);
+ ad->layout_main = lo;
+ }
+ content = (Evas_Object *)_ciss_create_ussd_view(ad->layout_main, &ussd_info, ad);
+ retv_if(content == NULL, -1);
+ elm_object_part_content_set(ad->layout_main, "elm.swallow.content", content);
+ } else {
+ ciss_err_t ciss_err;
+ _ciss_get_error_from_tapi_error(&ciss_err, event->Status);
+ _ciss_create_error_popup(ad->win_main, ciss_err, 2.0, ad);
+ }
+ ret = 0;
+ }
+
+ DBG("Leave");
+ return ret;
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * This file is part of <ciss>
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use it only in accordance
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability of the software,
+ * either express or implied, including but not limited to the implied warranties of merchantability,
+ * fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,
+ * modifying or distributing this software or its derivatives.
+ *
+ */
+
+#include "ciss-common.h"
+#include "ciss-ussd.h"
+#include "ciss-debug.h"
+#include "ciss-string.h"
+#include "ciss-respnd.h"
+#include "ciss-widget.h"
+#include <TapiEvent.h>
+
+static int __ciss_get_ussd_string(char *ss_result_string /*out */, TelSsUssdMsgIndInfo_t *ussd_info /*in */)
+{
+ DBG("Enter");
+
+ char *ptr;
+ char *temp_ptr;
+
+ if (ussd_info->UssdInfo.UssdStringLength > 0) {
+ ptr = strtok_r(ussd_info->UssdInfo.szUssdString, "\n", &temp_ptr);
+ snprintf(ss_result_string, CISS_MMI_MAX_USSD_RESP_STRING, "%s", ptr);
+
+ while ((ptr = strtok_r(NULL, "\n", &temp_ptr))) {
+ char temp_str[CISS_MMI_MAX_USSD_RESP_STRING];
+ strncpy(temp_str, ss_result_string, CISS_MMI_MAX_USSD_RESP_STRING - 1);
+ snprintf(ss_result_string, CISS_MMI_MAX_USSD_RESP_STRING, "%s<br>%s", temp_str, ptr);
+ }
+ } else
+ strncpy(ss_result_string, "", CISS_MMI_MAX_USSD_RESP_STRING - 1);
+
+ return 0;
+}
+
+void _ciss_ussd_quit_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ DBG("Enter");
+
+ struct appdata *ad = (struct appdata *)data;
+ int request_id = ad->request_id;
+ memset(ad->c_item, 0, sizeof(ad->c_item));
+
+ if (ad->ussd_action_require) {
+ DBG("callig ussd_cancel \n");
+ tel_send_ss_ussd_cancel(&request_id);
+ }
+
+ elm_exit();
+}
+
+static void __ciss_respnd_cb(void *data, Evas_Object *obj, void *event_info)
+{
+
+ DBG("Enter");
+
+ struct appdata *ad = (struct appdata *)data;
+ _ciss_create_respond_view(ad);
+}
+
+Evas_Object *_ciss_create_ussd_view(Evas_Object *parent, TelSsUssdMsgIndInfo_t *ussd_info, void *data)
+{
+ DBG("Enter");
+ retv_if(parent == NULL, NULL);
+ retv_if(ussd_info == NULL, NULL);
+ retv_if(data == NULL, NULL);
+
+ struct appdata *ad = (struct appdata *)data;
+ char ussd_string[CISS_MMI_MAX_USSD_RESP_STRING] = { };
+ __ciss_get_ussd_string(ussd_string, ussd_info);
+ DBG("[CISS-MMI] ussd_string = %s", ussd_string);
+
+ Evas_Object *nf;
+ Evas_Object *l_button;
+ Evas_Object *cbar = NULL;
+ Elm_Object_Item *navi_it = NULL;
+
+ nf = elm_naviframe_add(parent);
+ retv_if(nf == NULL, NULL);
+ ad->nf = nf;
+ ad->ussd_action_require = 0;
+
+ Evas_Object *genlist =
+ _ciss_create_result_genlist(ussd_string, CISS_MMI_MAX_USSD_RESP_STRING, nf, ad);
+ retv_if(NULL == genlist, NULL);
+
+ l_button = elm_button_add(nf);
+ evas_object_smart_callback_add(l_button, "clicked",
+ _ciss_ussd_quit_cb, ad);
+
+ navi_it = elm_naviframe_item_push(nf, CISS_STR_INFORMATION,
+ l_button, NULL, genlist, "1line");
+ elm_object_style_set(l_button, "naviframe/back_btn/default");
+
+ if (ussd_info->IndType == TAPI_USSD_IND_ACTION_REQUIRE) {
+ DBG("require action");
+ cbar = _ciss_create_navi_control_bar(nf,
+ CISS_STR_REPLY, __ciss_respnd_cb,
+ NULL, NULL,
+ ad, navi_it,
+ ad->c_item);
+ retv_if(cbar == NULL, NULL);
+ ad->ussd_action_require = 1;
+ }
+
+ evas_object_show(nf);
+ DBG("Leave");
+
+ return nf;
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * This file is part of <ciss>
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use it only in accordance
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability of the software,
+ * either express or implied, including but not limited to the implied warranties of merchantability,
+ * fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,
+ * modifying or distributing this software or its derivatives.
+ *
+ */
+
+#include "ciss-util.h"
+#include "ciss-debug.h"
+#include <string.h>
+
+char *_ciss_strcpy(char *pBuffer, int nBufCount, const char *pszString)
+{
+ if ((nBufCount - 1) >= (int)strlen(pszString))
+ strcpy(pBuffer, pszString);
+ else {
+ DBG("\n [CISS-ENGINE] _ciss_strcpy:short of buffer..BufCount=%d, strlen=%d, str=%s\n", nBufCount, strlen(pszString), pszString);
+ strncpy(pBuffer, pszString, (nBufCount - 1));
+ pBuffer[nBufCount - 1] = '\0';
+ }
+ return pBuffer;
+}
+
+void _ciss_util_swap(char *str1, char *str2)
+{
+ unsigned char tmp = 0;
+
+ tmp = *str1;
+ *str1 = *str2;
+ *str2 = tmp;
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * This file is part of <ciss>
+ * Written by <Sungjoon Won> <sungjoon.won@samsung.com>, <Jungmin Kim> <jm15.kim@samsung.com>
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use it only in accordance
+ * with the terms of the license agreement you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability of the software,
+ * either express or implied, including but not limited to the implied warranties of merchantability,
+ * fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as a result of using,
+ * modifying or distributing this software or its derivatives.
+ *
+ */
+
+#include "ciss-common.h"
+#include "ciss-widget.h"
+#include "ciss-util.h"
+#include <utilX.h>
+#include <Ecore_X.h>
+
+#define CISS_BUF_LEN 128
+#define CISS_DEF_FSIZE (24)
+#define CISS_DEF_FNAME "HelveN_Asia"
+
+Evas_Object *_ciss_create_popup(Evas_Object *parent, char *msg)
+{
+ DBG("Enter");
+ retv_if(msg == NULL, NULL);
+ retv_if(strlen(msg) == 0, NULL);
+ Evas_Object *popup;
+ popup = elm_popup_add(parent);
+ elm_object_part_text_set(popup, "title,text", CISS_STR_INFORMATION);
+ elm_popup_timeout_set(popup, 1.5);
+ elm_object_text_set(popup, msg);
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ return popup;
+}
+
+static void __ciss_resp_timeout_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ DBG("Enter");
+ struct appdata *ad = (struct appdata *)data;
+
+ _ciss_create_error_popup(ad->win_main, CISS_ERR_UNKNOWN, 2.0, ad);
+}
+
+static void __ciss_err_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ DBG("Enter");
+ struct appdata *ad = (struct appdata *)data;
+
+ evas_object_del(obj);
+ ad->popup = NULL;
+ elm_exit();
+}
+
+Evas_Object *_ciss_create_error_popup(Evas_Object *parent, ciss_err_t ciss_error, double t_timeout, void *data)
+{
+ DBG("Enter");
+ Evas_Object *popup;
+ struct appdata *ad = (struct appdata *)data;
+ if (ciss_error == CISS_ERR_NONE)
+ return NULL;
+
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+
+ char strmsg[100];
+ switch (ciss_error) {
+ case CISS_ERR_UNKNOWN_SUBSCRIBER:
+ case CISS_ERR_BEARER_NOT_PROVISIONED:
+ case CISS_ERR_TELESERVICE_NOT_PROVISIONED:
+ case CISS_ERR_CALL_BARRED:
+ case CISS_ERR_ERR_STATUS:
+ case CISS_ERR_NOT_AVAIL:
+ case CISS_ERR_SUBSCRIPTION_VIOLATION:
+ case CISS_ERR_INCOMPATIBILITY:
+ case CISS_ERR_FACILITY_NOT_SUPPORT:
+ case CISS_ERR_SYS_FAILURE:
+ case CISS_ERR_DATA_MISSING:
+ case CISS_ERR_UNEXPECTED_DATA:
+ case CISS_ERR_MPTY_PARTICIPANTS_EXCEED:
+ case CISS_ERR_RESOURCE_NOT_AVAIL:
+ case CISS_ERR_UNKNOWN:
+ snprintf(strmsg, 100, "%s", CISS_STR_SERVICE_UNAVAILABLE);
+ break;
+ case CISS_ERR_ILLEGAL_SS_OPER:
+ snprintf(strmsg, 100, "%s", CISS_STR_SERVICE_NOT_AUTHORISED);
+ break;
+ case CISS_ERR_PW_REGIST_FAIL:
+ case CISS_ERR_NEGATIVE_PW_CHECK:
+ snprintf(strmsg, 100, "%s", CISS_STR_INVALID_PASSWORD);
+ break;
+ case CISS_ERR_PW_ATTEMPS_VIOLATION: /**<numberOfPW_AttemptsViolation*/
+ snprintf(strmsg, 100, "%s", CISS_STR_PASSWORD_BLOCKED);
+ break;
+ case CISS_ERR_NETWORK_API_FAILED: /**<Telephony API call failed*/
+ case CISS_ERR_DIVERT_TO_EMERGENCY_BLOCKED: /**<Call diverting to an emergency number not allowed*/
+ snprintf(strmsg, 100, "%s", CISS_STR_REJECTED_BY_NETWORK);
+ break;
+ /* Call barring password mismatch errors */
+ case CISS_ERR_CB_PWD_TOO_SORT: /**<Password is too short - less than 4 characters*/
+ case CISS_ERR_CB_PWD_MISMATCH: /**<Password do not match - unequal password*/
+ case CISS_ERR_CB_PWD_TOO_LONG: /**<Password is too long - greater than 4 characters*/
+ snprintf(strmsg, 100, "%s", CISS_STR_INVALID_PASSWORD);
+ break;
+ default:
+ snprintf(strmsg, 100, "%s", CISS_STR_NETWORK_ERROR);
+ break;
+ }
+
+ popup = elm_popup_add(parent);
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_popup_timeout_set(popup, t_timeout);
+ elm_object_text_set(popup, strmsg);
+ elm_object_part_text_set(popup, "title,text", CISS_STR_INFORMATION);
+ evas_object_smart_callback_add(popup, "timeout", __ciss_err_cb, ad);
+ evas_object_smart_callback_add(popup, "block,clicked", __ciss_err_cb, ad);
+
+ evas_object_show(popup);
+ ad->popup = popup;
+
+ return popup;
+}
+
+Evas_Object *_ciss_create_noti_popup(Evas_Object *parent, char *strtitle, char *strmsg, double t_timeout, void *data)
+{
+ DBG("Enter");
+ Evas_Object *popup;
+ Evas_Object *progressbar;
+ retv_if(parent == NULL, NULL);
+ popup = elm_popup_add(parent);
+
+ elm_object_part_text_set(popup, "title,text", strtitle);
+
+ progressbar = elm_progressbar_add(popup);
+ elm_object_style_set(progressbar, "pending_list");
+ elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
+ evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_progressbar_pulse(progressbar, EINA_TRUE);
+ evas_object_show(progressbar);
+
+ elm_object_content_set(popup, progressbar);
+ elm_popup_timeout_set(popup, t_timeout);
+ evas_object_smart_callback_add(popup, "timeout", __ciss_resp_timeout_cb, data);
+
+ evas_object_show(popup);
+
+ return popup;
+}
+
+static void __ciss_win_del(void *data, Evas_Object *obj, void *event)
+{
+ elm_exit();
+}
+
+Eina_Bool _ciss_on_end_key_down(void *data, int type, void *event)
+{
+ DBG("Enter");
+ Ecore_Event_Key *ev = event;
+
+ if (!strcmp(ev->keyname, KEY_END))
+ elm_exit();
+
+ return EXIT_FAILURE;
+}
+
+Evas_Object *_ciss_create_win(const char *name)
+{
+ DBG("Enter");
+ Evas_Object *eo;
+ int w, h;
+ eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+ retv_if(eo == NULL, NULL);
+
+ if (eo) {
+ elm_win_alpha_set(eo, EINA_TRUE);
+ elm_win_title_set(eo, name);
+ elm_win_borderless_set(eo, EINA_TRUE);
+ elm_win_raise(eo);
+ elm_win_indicator_mode_set(eo, ELM_WIN_INDICATOR_SHOW);
+ evas_object_smart_callback_add(eo, "delete,request", __ciss_win_del, NULL);
+ ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+ DBG("win w=%d h=%d", w, h);
+ evas_object_resize(eo, w, h);
+ }
+
+ return eo;
+}
+
+Evas_Object *_ciss_create_layout_main(Evas_Object *parent)
+{
+ DBG("Enter");
+
+ Evas_Object *layout;
+ retv_if(parent == NULL, NULL);
+
+ layout = elm_layout_add(parent);
+ retvm_if(layout == NULL, NULL, "Failed elm_layout_add.\n");
+
+ elm_layout_theme_set(layout, "layout", "application", "default");
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(parent, layout);
+ evas_object_show(layout);
+
+ return layout;
+}
+
+Evas_Object *_ciss_create_bg(Evas_Object *parent)
+{
+ retv_if(parent == NULL, NULL);
+
+ Evas_Object *bg = elm_bg_add(parent);
+ retvm_if(bg == NULL, NULL, "Failed elm_bg_add.\n");
+ evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(parent, bg);
+ evas_object_show(bg);
+
+ return bg;
+}
+
+Evas_Object *_ciss_create_navi_control_bar(Evas_Object *parent,
+ char *label1, Evas_Smart_Cb cb1,
+ char *label2, Evas_Smart_Cb cb2,
+ void *data, Elm_Object_Item *navi_it,
+ Elm_Object_Item ** c_item)
+{
+ retv_if(NULL == parent, NULL);
+ Evas_Object *toolbar = elm_toolbar_add(parent);
+ Elm_Object_Item *item = NULL;
+
+ retv_if(toolbar == NULL, NULL);
+ retv_if(label1 == NULL, NULL);
+
+ elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
+
+
+ if (label2) {
+ item = elm_toolbar_item_append(toolbar, NULL, NULL, NULL, NULL);
+ elm_object_item_disabled_set(item, EINA_TRUE);
+ c_item[0] = elm_toolbar_item_append(toolbar,
+ NULL, label1, cb1, data);
+ item = elm_toolbar_item_append(toolbar, NULL, NULL, NULL, NULL);
+ elm_object_item_disabled_set(item, EINA_TRUE);
+ c_item[1] = elm_toolbar_item_append(toolbar,
+ NULL, label2, cb2, data);
+ } else {
+ item = elm_toolbar_item_append(toolbar, NULL, NULL, NULL, NULL);
+ elm_object_item_disabled_set(item, EINA_TRUE);
+ item = elm_toolbar_item_append(toolbar, NULL, NULL, NULL, NULL);
+ elm_object_item_disabled_set(item, EINA_TRUE);
+ item = elm_toolbar_item_append(toolbar, NULL, NULL, NULL, NULL);
+ elm_object_item_disabled_set(item, EINA_TRUE);
+
+ c_item[0] = elm_toolbar_item_append(toolbar,
+ NULL, label1, cb1, data);
+ }
+
+ elm_object_item_part_content_set(navi_it, "controlbar", toolbar);
+ return toolbar;
+}
+
+Evas_Object *_cst_create_title_btn(Evas_Object *parent,
+ const char *text, Evas_Smart_Cb func, void *data)
+{
+ Evas_Object *btn = elm_button_add(parent);
+ if (!btn) return NULL;
+ elm_object_style_set(btn, "naviframe/title/default");
+ elm_object_text_set(btn, text);
+ evas_object_smart_callback_add(btn, "clicked", func, data);
+ return btn;
+}
+
+static void __ciss_trans_finished(void *data, Evas_Object *obj, void *event_info)
+{
+ ret_if(NULL == obj);
+ elm_naviframe_prev_btn_auto_pushed_set(obj, EINA_TRUE);
+ evas_object_smart_callback_del(obj, "transition,finished", __ciss_trans_finished);
+}
+
+void _ciss_remove_naviframe(Evas_Object *nf)
+{
+ ret_if(NULL == nf);
+ elm_naviframe_prev_btn_auto_pushed_set(nf, EINA_FALSE);
+ evas_object_smart_callback_add(nf, "transition,finished",
+ __ciss_trans_finished, NULL);
+}
+
+static char *__ciss_gl_label_get_result(void *data, Evas_Object *obj, const char *part)
+{
+ char *label = (char *)data;
+
+ if (label)
+ return strdup(label);
+ else
+ return NULL;
+}
+
+static void __ciss_gl_del_result(void *data, Evas_Object *obj)
+{
+ char *label = (char *)data;
+ if(label)
+ free(label);
+
+ return;
+}
+
+Evas_Object * _ciss_create_result_genlist(const char *result_str, int str_len, Evas_Object *nf, void *data)
+{
+ Evas_Object *genlist = elm_genlist_add(nf);
+ retv_if(NULL == genlist, NULL);
+ retv_if(NULL == data, NULL);
+
+ struct appdata *ad = (struct appdata *)data;
+ ad->itc_multi_line->item_style = "multiline/1text";
+ ad->itc_multi_line->func.text_get = __ciss_gl_label_get_result;
+ ad->itc_multi_line->func.content_get = NULL;
+ ad->itc_multi_line->func.state_get = NULL;
+ ad->itc_multi_line->func.del = __ciss_gl_del_result;
+
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+ char *label = calloc(str_len, sizeof(char));
+ retv_if(label == NULL, NULL);
+
+ strncpy(label, result_str, str_len - 1);
+ Elm_Object_Item *item = elm_genlist_item_append(genlist, ad->itc_multi_line,
+ (void *)label, NULL, ELM_GENLIST_ITEM_NONE,
+ NULL, NULL);
+ elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ return genlist;
+}
+
+void _ciss_geinlist_item_class_new(void *data)
+{
+ ret_if(data == NULL);
+
+ struct appdata *ad = (struct appdata *)data;
+ ad->itc_ime = elm_genlist_item_class_new();
+ ad->itc_multi_line = elm_genlist_item_class_new();
+}
+
+void _ciss_geinlist_item_class_free(void *data)
+{
+ ret_if(data == NULL);
+
+ struct appdata *ad = (struct appdata *)data;
+ if (ad->itc_ime)
+ elm_genlist_item_class_free(ad->itc_ime);
+ if (ad->itc_multi_line)
+ elm_genlist_item_class_free(ad->itc_multi_line);
+}