--- /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 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
+Flora License
+
+Version 1.0, May, 2012
+
+http://www.tizenopensource.org/license
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
+
+"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
+
+"Tizen Certified Platform" shall mean a software platform that complies with the standards set forth in the Compatibility Definition Document and passes the Compatibility Test Suite as defined from time to time by the Tizen Technical Steering Group and certified by the Tizen Association or its designated agent.
+
+2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work solely as incorporated into a Tizen Certified Platform, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work solely as incorporated into a Tizen Certified Platform to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof pursuant to the copyright license above, in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
+
+ 1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
+
+ 2. You must cause any modified files to carry prominent notices stating that You changed the files; and
+
+ 3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
+
+ 4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Flora License to your work
+
+To apply the Flora License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Flora License, Version 1.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.tizenopensource.org/license
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
--- /dev/null
+ciss (0.4.45) unstable; urgency=low
+
+ * 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
--- /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, 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
+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 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#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 2012 Samsung Electronics Co., Ltd\r
+ * \r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * \r
+ * http://www.tizenopensource.org/license\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\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 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#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 2012 Samsung Electronics Co., Ltd\r
+ * \r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * \r
+ * http://www.tizenopensource.org/license\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\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 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#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 2012 Samsung Electronics Co., Ltd\r
+ * \r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * \r
+ * http://www.tizenopensource.org/license\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\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 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#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 2012 Samsung Electronics Co., Ltd\r
+ * \r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * \r
+ * http://www.tizenopensource.org/license\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\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 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#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 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#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 2012 Samsung Electronics Co., Ltd\r
+ * \r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * \r
+ * http://www.tizenopensource.org/license\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\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 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#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: Flora Software License
+Source0: %{name}-%{version}.tar.gz
+BuildRequires: pkgconfig(appcore-efl)
+BuildRequires: pkgconfig(elementary)
+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
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+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 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#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) {
+ 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 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#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 2012 Samsung Electronics Co., Ltd\r
+ * \r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * \r
+ * http://www.tizenopensource.org/license\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\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 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#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 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#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 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#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 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#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 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#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 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#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);
+}