Code sync from tizen_2.4 35/42735/1 accepted/tizen/mobile/20150708.070006 accepted/tizen/tv/20150708.070024 accepted/tizen/wearable/20150708.070041 submit/tizen/20150630.051205 submit/tizen/20150708.045531
authorJiwan Kim <ji-wan.kim@samsung.com>
Thu, 2 Jul 2015 04:25:11 +0000 (13:25 +0900)
committerJiwan Kim <ji-wan.kim@samsung.com>
Thu, 2 Jul 2015 04:25:11 +0000 (13:25 +0900)
Change-Id: Iee3837d46c0331194d4d490c40de73d3f1e292ac

16 files changed:
CMakeLists.txt
LICENSE
packaging/tel-plugin-atmodem.spec
res/convert_to_sql.c [deleted file]
res/wiki_mcc_mnc_oper_list.csv [deleted file]
res/wiki_mcc_mnc_oper_list.db [deleted file]
res/wiki_mcc_mnc_oper_list.sql [deleted file]
src/desc_at.c [changed mode: 0755->0644]
src/s_call.c [changed mode: 0755->0644]
src/s_common.c [changed mode: 0755->0644]
src/s_modem.c [changed mode: 0755->0644]
src/s_network.c [changed mode: 0755->0644]
src/s_ps.c
src/s_sim.c [changed mode: 0755->0644]
src/s_sms.c [changed mode: 0755->0644]
src/s_ss.c [changed mode: 0755->0644]

index 7492dcc3fcfa0eb4e26c6b2004b1f6e7de47e6cc..78d21197f6b1e8a3243317fff2551704abb3320f 100755 (executable)
@@ -49,5 +49,4 @@ SET_TARGET_PROPERTIES(atmodem-plugin PROPERTIES PREFIX "" OUTPUT_NAME atmodem-pl
 INSTALL(TARGETS atmodem-plugin
                LIBRARY DESTINATION ${LIBDIR}/telephony/plugins/modems)
 
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/wiki_mcc_mnc_oper_list.sql DESTINATION /tmp RENAME mcc_mnc_oper_list.sql)
 INSTALL(FILES ${CMAKE_SOURCE_DIR}/LICENSE DESTINATION /usr/share/license RENAME tel-plugin-atmodem)
diff --git a/LICENSE b/LICENSE
index bae7f54c24c5bcae7e86a0c33a58367fe303a3d6..3d692594db692e34b54ed73d89b3cf2cb87da908 100644 (file)
--- a/LICENSE
+++ b/LICENSE
-Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved.\r
-\r
-                                 Apache License\r
-                           Version 2.0, January 2004\r
-                        http://www.apache.org/licenses/\r
-\r
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\r
-\r
-   1. Definitions.\r
-\r
-      "License" shall mean the terms and conditions for use, reproduction,\r
-      and distribution as defined by Sections 1 through 9 of this document.\r
-\r
-      "Licensor" shall mean the copyright owner or entity authorized by\r
-      the copyright owner that is granting the License.\r
-\r
-      "Legal Entity" shall mean the union of the acting entity and all\r
-      other entities that control, are controlled by, or are under common\r
-      control with that entity. For the purposes of this definition,\r
-      "control" means (i) the power, direct or indirect, to cause the\r
-      direction or management of such entity, whether by contract or\r
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the\r
-      outstanding shares, or (iii) beneficial ownership of such entity.\r
-\r
-      "You" (or "Your") shall mean an individual or Legal Entity\r
-      exercising permissions granted by this License.\r
-\r
-      "Source" form shall mean the preferred form for making modifications,\r
-      including but not limited to software source code, documentation\r
-      source, and configuration files.\r
-\r
-      "Object" form shall mean any form resulting from mechanical\r
-      transformation or translation of a Source form, including but\r
-      not limited to compiled object code, generated documentation,\r
-      and conversions to other media types.\r
-\r
-      "Work" shall mean the work of authorship, whether in Source or\r
-      Object form, made available under the License, as indicated by a\r
-      copyright notice that is included in or attached to the work\r
-      (an example is provided in the Appendix below).\r
-\r
-      "Derivative Works" shall mean any work, whether in Source or Object\r
-      form, that is based on (or derived from) the Work and for which the\r
-      editorial revisions, annotations, elaborations, or other modifications\r
-      represent, as a whole, an original work of authorship. For the purposes\r
-      of this License, Derivative Works shall not include works that remain\r
-      separable from, or merely link (or bind by name) to the interfaces of,\r
-      the Work and Derivative Works thereof.\r
-\r
-      "Contribution" shall mean any work of authorship, including\r
-      the original version of the Work and any modifications or additions\r
-      to that Work or Derivative Works thereof, that is intentionally\r
-      submitted to Licensor for inclusion in the Work by the copyright owner\r
-      or by an individual or Legal Entity authorized to submit on behalf of\r
-      the copyright owner. For the purposes of this definition, "submitted"\r
-      means any form of electronic, verbal, or written communication sent\r
-      to the Licensor or its representatives, including but not limited to\r
-      communication on electronic mailing lists, source code control systems,\r
-      and issue tracking systems that are managed by, or on behalf of, the\r
-      Licensor for the purpose of discussing and improving the Work, but\r
-      excluding communication that is conspicuously marked or otherwise\r
-      designated in writing by the copyright owner as "Not a Contribution."\r
-\r
-      "Contributor" shall mean Licensor and any individual or Legal Entity\r
-      on behalf of whom a Contribution has been received by Licensor and\r
-      subsequently incorporated within the Work.\r
-\r
-   2. Grant of Copyright License. Subject to the terms and conditions of\r
-      this License, each Contributor hereby grants to You a perpetual,\r
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\r
-      copyright license to reproduce, prepare Derivative Works of,\r
-      publicly display, publicly perform, sublicense, and distribute the\r
-      Work and such Derivative Works in Source or Object form.\r
-\r
-   3. Grant of Patent License. Subject to the terms and conditions of\r
-      this License, each Contributor hereby grants to You a perpetual,\r
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\r
-      (except as stated in this section) patent license to make, have made,\r
-      use, offer to sell, sell, import, and otherwise transfer the Work,\r
-      where such license applies only to those patent claims licensable\r
-      by such Contributor that are necessarily infringed by their\r
-      Contribution(s) alone or by combination of their Contribution(s)\r
-      with the Work to which such Contribution(s) was submitted. If You\r
-      institute patent litigation against any entity (including a\r
-      cross-claim or counterclaim in a lawsuit) alleging that the Work\r
-      or a Contribution incorporated within the Work constitutes direct\r
-      or contributory patent infringement, then any patent licenses\r
-      granted to You under this License for that Work shall terminate\r
-      as of the date such litigation is filed.\r
-\r
-   4. Redistribution. You may reproduce and distribute copies of the\r
-      Work or Derivative Works thereof in any medium, with or without\r
-      modifications, and in Source or Object form, provided that You\r
-      meet the following conditions:\r
-\r
-      (a) You must give any other recipients of the Work or\r
-          Derivative Works a copy of this License; and\r
-\r
-      (b) You must cause any modified files to carry prominent notices\r
-          stating that You changed the files; and\r
-\r
-      (c) You must retain, in the Source form of any Derivative Works\r
-          that You distribute, all copyright, patent, trademark, and\r
-          attribution notices from the Source form of the Work,\r
-          excluding those notices that do not pertain to any part of\r
-          the Derivative Works; and\r
-\r
-      (d) If the Work includes a "NOTICE" text file as part of its\r
-          distribution, then any Derivative Works that You distribute must\r
-          include a readable copy of the attribution notices contained\r
-          within such NOTICE file, excluding those notices that do not\r
-          pertain to any part of the Derivative Works, in at least one\r
-          of the following places: within a NOTICE text file distributed\r
-          as part of the Derivative Works; within the Source form or\r
-          documentation, if provided along with the Derivative Works; or,\r
-          within a display generated by the Derivative Works, if and\r
-          wherever such third-party notices normally appear. The contents\r
-          of the NOTICE file are for informational purposes only and\r
-          do not modify the License. You may add Your own attribution\r
-          notices within Derivative Works that You distribute, alongside\r
-          or as an addendum to the NOTICE text from the Work, provided\r
-          that such additional attribution notices cannot be construed\r
-          as modifying the License.\r
-\r
-      You may add Your own copyright statement to Your modifications and\r
-      may provide additional or different license terms and conditions\r
-      for use, reproduction, or distribution of Your modifications, or\r
-      for any such Derivative Works as a whole, provided Your use,\r
-      reproduction, and distribution of the Work otherwise complies with\r
-      the conditions stated in this License.\r
-\r
-   5. Submission of Contributions. Unless You explicitly state otherwise,\r
-      any Contribution intentionally submitted for inclusion in the Work\r
-      by You to the Licensor shall be under the terms and conditions of\r
-      this License, without any additional terms or conditions.\r
-      Notwithstanding the above, nothing herein shall supersede or modify\r
-      the terms of any separate license agreement you may have executed\r
-      with Licensor regarding such Contributions.\r
-\r
-   6. Trademarks. This License does not grant permission to use the trade\r
-      names, trademarks, service marks, or product names of the Licensor,\r
-      except as required for reasonable and customary use in describing the\r
-      origin of the Work and reproducing the content of the NOTICE file.\r
-\r
-   7. Disclaimer of Warranty. Unless required by applicable law or\r
-      agreed to in writing, Licensor provides the Work (and each\r
-      Contributor provides its Contributions) on an "AS IS" BASIS,\r
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\r
-      implied, including, without limitation, any warranties or conditions\r
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\r
-      PARTICULAR PURPOSE. You are solely responsible for determining the\r
-      appropriateness of using or redistributing the Work and assume any\r
-      risks associated with Your exercise of permissions under this License.\r
-\r
-   8. Limitation of Liability. In no event and under no legal theory,\r
-      whether in tort (including negligence), contract, or otherwise,\r
-      unless required by applicable law (such as deliberate and grossly\r
-      negligent acts) or agreed to in writing, shall any Contributor be\r
-      liable to You for damages, including any direct, indirect, special,\r
-      incidental, or consequential damages of any character arising as a\r
-      result of this License or out of the use or inability to use the\r
-      Work (including but not limited to damages for loss of goodwill,\r
-      work stoppage, computer failure or malfunction, or any and all\r
-      other commercial damages or losses), even if such Contributor\r
-      has been advised of the possibility of such damages.\r
-\r
-   9. Accepting Warranty or Additional Liability. While redistributing\r
-      the Work or Derivative Works thereof, You may choose to offer,\r
-      and charge a fee for, acceptance of support, warranty, indemnity,\r
-      or other liability obligations and/or rights consistent with this\r
-      License. However, in accepting such obligations, You may act only\r
-      on Your own behalf and on Your sole responsibility, not on behalf\r
-      of any other Contributor, and only if You agree to indemnify,\r
-      defend, and hold each Contributor harmless for any liability\r
-      incurred by, or claims asserted against, such Contributor by reason\r
-      of your accepting any such warranty or additional liability.\r
-\r
-   END OF TERMS AND CONDITIONS\r
-\r
-   APPENDIX: How to apply the Apache License to your work.\r
-\r
-      To apply the Apache License to your work, attach the following\r
-      boilerplate notice, with the fields enclosed by brackets "[]"\r
-      replaced with your own identifying information. (Don't include\r
-      the brackets!)  The text should be enclosed in the appropriate\r
-      comment syntax for the file format. We also recommend that a\r
-      file or class name and description of purpose be included on the\r
-      same "printed page" as the copyright notice for easier\r
-      identification within third-party archives.\r
-\r
-   Copyright [yyyy] [name of copyright owner]\r
-\r
-   Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0\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
+Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved.
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   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.
+
+   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,
+      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 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 in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) 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
+
+      (d) 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 Apache License to your work.
+
+      To apply the Apache 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 Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+
+   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.
+
index 3352336ef694bd002763e2bfedec9cea3ccfc9db..700df539ccf5bec9474d62b1f519ec834bab529a 100644 (file)
@@ -1,6 +1,6 @@
 %define major 0
 %define minor 1
-%define patchlevel 57
+%define patchlevel 66
 
 Name:              tel-plugin-atmodem
 Version:           %{major}.%{minor}.%{patchlevel}
@@ -30,25 +30,6 @@ make %{?_smp_mflags}
 %post
 /sbin/ldconfig
 
-mkdir -p /opt/dbspace
-
-if [ ! -f /opt/dbspace/.mcc_mnc_oper_list.db ]
-then
-       sqlite3 /opt/dbspace/.mcc_mnc_oper_list.db < /tmp/mcc_mnc_oper_list.sql
-fi
-
-rm -f /tmp/mcc_mnc_oper_list.sql
-
-if [ -f /opt/dbspace/.mcc_mnc_oper_list.db ]
-then
-chmod 600 /opt/dbspace/.mcc_mnc_oper_list.db
-fi
-
-if [ -f /opt/dbspace/.mcc_mnc_oper_list.db-journal ]
-then
-chmod 644 /opt/dbspace/.mcc_mnc_oper_list.db-journal
-fi
-
 %postun -p /sbin/ldconfig
 
 %install
@@ -58,8 +39,7 @@ cp LICENSE %{buildroot}/usr/share/license/%{name}
 
 %files
 %manifest tel-plugin-atmodem.manifest
-%defattr(-,root,root,-)
+%defattr(644,system,system,-)
 #%doc COPYING
 %{_libdir}/telephony/plugins/modems/atmodem-plugin*
-/tmp/mcc_mnc_oper_list.sql
 /usr/share/license/%{name}
diff --git a/res/convert_to_sql.c b/res/convert_to_sql.c
deleted file mode 100644 (file)
index 2039c65..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * tel-plugin-atmodem
- *
- * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Ja-young Gu <jygu@samsung.com>
- *
- * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
- *
- * 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 <string.h>
-
-#define TABLE_NAME "mcc_mnc_oper_list"
-#define TABLE_SCHEMA "create table " TABLE_NAME " (id integer primary key, country char(3), mcc integer, mnc char(3), oper char(45) );"
-
-#define dbg(fmt,args...) fprintf(stderr, fmt, ##args);
-
-int main(int argc, char *argv[])
-{
-       FILE *fp_in;
-
-       char buf[255];
-       char brand[255];
-       char oper[255];
-       char *pos1, *pos2;
-       char country[10];
-       char mnc[10];
-       char *oper_select;
-       int mcc;
-
-       if (argc != 2) {
-               printf("%s filename.csv\n", argv[0]);
-               return -1;
-       }
-
-       fp_in = fopen(argv[1], "r");
-       if (fp_in == NULL) {
-               printf("faild.\n");
-               return -1;
-       }
-
-       printf("%s\n", TABLE_SCHEMA);
-
-       printf("BEGIN;\n");
-       while (1) {
-               fgets (buf, 255, fp_in);
-
-               if (feof(fp_in))  {
-                       break;
-               }
-
-               // remove '\n'
-               buf[strlen(buf)-1] = '\0';
-
-               dbg("\n%s\n", buf);
-
-               pos1 = strchr (buf, ',');
-               memset (country, 0, 10);
-               memcpy(country, buf, pos1-buf);
-
-               dbg("country=[%s]\n", country);
-
-               sscanf (pos1+1, "%d", &mcc);
-               dbg("mcc=[%d]\n", mcc);
-
-               // get mnc
-               pos1 = strchr (pos1+1, ',');
-               pos2 = strchr (pos1+1, ',');
-
-               dbg("mnc=[%s]\n", pos1+1);
-
-               memset (mnc, 0, 10);
-               strncpy (mnc, pos1+1, pos2-pos1-1);
-
-               // get brand
-               pos1 = pos2;
-               pos2 = strchr (pos1+1, ',');
-
-               dbg("brand=[%s]\n", pos1+1);
-
-               memset (brand, 0, 255);
-               strncpy (brand, pos1+1, pos2-pos1-1);
-
-               // get oper
-               pos1 = pos2;
-               pos2 = strchr (pos1+1, ',');
-
-               dbg("oper=[%s]\n", pos1+1);
-
-               memset (oper, 0, 255);
-               strcpy (oper, pos1+1);
-
-               oper_select = brand;
-               if (strlen(brand) == 0)
-                       oper_select = oper;
-
-               if (oper_select[0] == '\"') {
-                       memset(buf, 0, 255);
-                       snprintf(buf, strlen(oper_select)-2, "%s", oper_select+1);
-                       snprintf(oper_select, 255, "%s", buf);
-               }
-
-               snprintf(buf, 255, "insert into %s "
-                               " (country, mcc, mnc, oper) "
-                               " values (\"%s\", %d, \"%s\", \"%s\");",
-                               TABLE_NAME, country, mcc, mnc, oper_select);
-               printf("%s\n",buf);
-       }
-       printf("COMMIT;\n");
-
-       fclose(fp_in);
-}
diff --git a/res/wiki_mcc_mnc_oper_list.csv b/res/wiki_mcc_mnc_oper_list.csv
deleted file mode 100644 (file)
index 6c6edf6..0000000
+++ /dev/null
@@ -1,1517 +0,0 @@
-Country,MCC,MNC,Brand,Operator
-__,001,01,TEST,Test Network
-GE,289,67,Aquafon,Aquafon
-GE,289,88,A-Mobile,A-Mobile
-AF,412,01,AWCC,Afghan Wireless Communication Company
-AF,412,20,Roshan,Telecom Development Company Afghanistan Ltd.
-AF,412,40,MTN,MTN Group Afghanistan
-AF,412,50,Etisalat,Etisalat Afghanistan
-AL,76,01,AMC,Albanian Mobile Communications
-AL,276,02,Vodafone,Vodafone Albania
-AL,276,03,Eagle Mobile,Eagle Mobile
-AL,276,04,Plus Communication,Plus Communication
-DZ,603,01,Mobilis,ATM Mobilis
-DZ,603,02,Djezzy,Orascom Telecom Algerie Spa
-DZ,603,03,Nedjma,Wataniya Telecom Algerie
-AS,44,11,Bluesky,Bluesky
-AD,213,03,Mobiland,Servei De Tele. DAndorra
-AO,631,02,UNITEL,UNITEL S.a.r.l.
-AO,631,04,MOVICEL,MOVICEL Telecommunications S.a.
-AI,365,010,,Weblinks Limited
-AI,365,840,,Cable & Wireless
-AG,344,030,APUA,Antigua Public Utilities Authority
-AG,344,920,LIME,Cable & Wireless Caribbean Cellular (Antigua) Limited
-AG,338,050,Digicel,Antigua Wireless Ventures Limited
-AR,722,010,Movistar,Telefonica Móviles Argentina SA
-AR,722,020,Nextel,NII Holdings
-AR,722,070,Movistar,Telefonica Móviles Argentina SA
-AR,722,310,Claro,AMX Argentina S.A
-AR,722,320,Claro,AMX Argentina S.A
-AR,722,330,Claro,AMX Argentina S.A
-AR,722,34,Personal,Telecom Personal SA
-AR,722,341,Personal,Telecom Personal SA
-AR,722,350,,Hutchinson (PORT HABLE)
-AR,722,36,Personal,Telecom Personal SA
-AM,283,01,Beeline,ArmenTel
-AM,283,05,VivaCell-MTS,K Telecom CJSC
-AM,283,10,Orange,
-AW,363,01,SETAR,Servicio di Telecomunicacion di Aruba
-AW,363,02,Digicel,
-AU,505,01,Telstra,Telstra Corporation Limited
-AU,505,02,Optus,Singtel Optus Proprietary Limited
-AU,505,03,Vodafone,Vodafone Hutchison Australia Proprietary Limited
-AU,505,04,,Department of Defence
-AU,505,05,Ozitel,
-AU,505,06,3,Vodafone Hutchison Australia Proprietary Limited
-AU,505,08,One.Tel,One.Tel Limited
-AU,505,09,Airnet,
-AU,505,12,3,Vodafone Hutchison Australia Proprietary Limited
-AU,505,13,Railcorp,Rail Corporation New South Wales
-AU,505,14,AAPT,Telecom New Zealand
-AU,505,15,3GIS,
-AU,505,16,Victorian Rail Track,
-AU,505,21,SOUL,TPG Telecom Limited
-AU,505,24,Advance Communications Technologies Pty. Ltd.,
-AU,505,38,Crazy John's,Vodafone Hutchison Australia Proprietary Limited
-AU,505,71,Telstra,Telstra Corporation Limited
-AU,505,72,Telstra,Telstra Corporation Limited
-AU,505,88,Localstar Holding Pty. Ltd.,
-AU,505,90,Optus,Singtel Optus Proprietary Limited
-AU,505,99,One.Tel,One.Tel
-AT,232,01,A1,A1 Telekom Austria
-AT,232,03,T-Mobile,T-Mobile Austria
-AT,232,05,Orange,Orange Austria
-AT,232,07,tele.ring,T-Mobile Austria
-AT,232,09,A1,A1 Telekom Austria
-AT,232,10,3,Hutchison 3G
-AT,232,11,bob,A1 Telekom Austria
-AT,232,12,yesss,yesss
-AT,232,14,3,Hutchison 3G
-AT,232,15,Barablu,Barablu Mobile Ltd.
-AT,232,91,GSM-R A,ÖBB
-AZ,400,01,Azercell,
-AZ,400,02,Bakcell,
-AZ,400,03,FONEX,CATEL
-AZ,400,04,Nar Mobile,Azerfon
-BS,364,390,BaTelCo,The Bahamas Telecommunications Company Ltd
-BH,426,01,Batelco,Bahrain Telecommunications Company
-BH,426,02,zain BH,Zain Bahrain
-BH,426,04,VIVA,Viva Bahrain
-BD,470,01,Grameenphone,GrameenPhone Ltd
-BD,470,02,Robi,Axiata Bangladesh Ltd.
-BD,470,03,Banglalink,Orascom Telecom Holding
-BD,470,04,TeleTalk,
-BD,470,05,Citycell,
-BD,470,06,Airtel formerly Warid Telcom,Bharti airtel Bangladesh Ltd.
-BB,342,600,LIME,LIME (formerly known as Cable & Wireless)
-BB,342,750,Digicel,Digicel (Barbados) Limited
-BB,342,820,,Sunbeach Communications
-BY,257,01,velcom,
-BY,257,02,MTS,Mobile TeleSystems
-BY,257,03,DIALLOG,BelCel
-BY,257,04,life:),Belarussian Telecommunications Network
-BY,257,501,BelCel JV,
-BE,206,01,Proximus,Belgacom Mobile
-BE,206,05,Telenet,Telenet
-BE,206,10,Mobistar,France Telecom
-BE,206,20,BASE,KPN
-BZ,702,67,DigiCell,Belize Telemedia
-BZ,702,99,Smart,SpeedNet Communications Limited
-BJ,616,01,Libercom,Benin Telecoms Mobile
-BJ,616,02,Moov,Telecel Benin
-BJ,616,03,MTN,Spacetel Benin
-BJ,616,04,BBCOM,Bell Benin Communications
-BJ,616,05,Glo,Glo Communication Benin
-BM,350,01,Digicel Bermuda,Telecommunications (Bermuda & West Indies) Ltd
-BM,350,02,Mobility,M3 Wireless
-BM,338,050,Digicel Bermuda,
-BM,310,59,Cellular One,
-BT,402,11,B-Mobile,B-Mobile
-BT,402,77,TashiCell,Tashi InfoComm Limited
-BO,736,01,Nuevatel,Nuevatel PCS De Bolivia SA
-BO,736,02,Entel,Entel SA
-BO,736,03,Tigo,Telefonica Celular De Bolivia S.A
-BA,218,03,HT-ERONET,Public Enterprise Croatian Telecom Ltd.
-BA,218,05,m:tel,RS Telecommunications JSC Banja Luka
-BA,218,90,BH Mobile,BH Telecom
-BW,652,01,Mascom,Mascom Wireless (Pty) Limited
-BW,652,02,Orange,Orange (Botswana) Pty Limited
-BW,652,04,BTC Mobile,Botswana Telecommunications Corporation
-BR,724,00,Nextel,"NII Holdings, Inc."
-BR,724,02,TIM,Telecom Italia Mobile
-BR,724,03,TIM,Telecom Italia Mobile
-BR,724,04,TIM,Telecom Italia Mobile
-BR,724,05,Claro BR,Claro
-BR,724,06,Vivo,Vivo S.A.
-BR,724,07,Sercomtel,Sercomtel Celular
-BR,724,10,Vivo,Vivo S.A.
-BR,724,11,Vivo,Vivo S.A.
-BR,724,15,CTBC Celular,CTBC Celular S.A.
-BR,724,16,Brasil Telecom GSM,Brasil Telecom GSM
-BR,724,23,Vivo,Vivo S.A.
-BR,724,31,Oi,TNL PCS
-BR,724,32,CTBC Celular,CTBC Celular S.A.
-BR,724,33,CTBC Celular,CTBC Celular S.A.
-BR,724,34,CTBC Celular,CTBC Celular S.A.
-BR,724,39,Nextel,"NII Holdings, Inc."
-VG,348,170,LIME,Cable & Wireless
-VG,348,570,CCT Boatphone,Caribbean Cellular Telephone
-VG,348,770,Digicel,Digicel (BVI) Limited
-BN,528,01,,Jabatan Telekom Brunei
-BN,528,02,B-Mobile,B-Mobile Communications Sdn Bhd
-BN,528,11,DSTCom,Data Stream Technology
-BG,284,01,M-Tel,Mobiltel
-BG,284,03,Vivacom,BTC
-BG,284,04,Undisclosed,Undisclosed
-BG,284,05,GLOBUL,Cosmo Bulgaria Mobile
-BF,613,01,Telmob,Onatal
-BF,613,02,Zain,Celtel Burkina Faso
-BF,613,03,Telecel Faso,Telecel Faso SA
-BI,642,01,Spacetel,Econet Wireless Burundi PLC
-BI,642,02,Africell,Africell PLC
-BI,642,03,Onatel,Onatel
-BI,642,07,Smart Mobile,LACELL SU
-BI,642,08,HiTs Telecom,HiTs Telecom
-BI,642,82,U-COM Burundi,U-COM Burundi S.A.
-KH,456,01,Mobitel,CamGSM
-KH,456,02,hello,Telekom Malaysia International (Cambodia) Co. Ltd
-KH,456,03,,S Telecom
-KH,456,04,qb,Cambodia Advance Communications Co. Ltd
-KH,456,05,Star-Cell,APPLIFONE CO. LTD.
-KH,456,06,Smart Mobile,"Latelz Co., Ltd"
-KH,456,18,Mfone,Camshin / Shinawatra
-KH,456,11,Excell,
-KH,456,09,Beeline,Sotelco Ltd.
-KH,456,08,Metfone,Viettel
-CM,624,01,MTN Cameroon,Mobile Telephone Network Cameroon Ltd
-CM,624,02,Orange,Orange Cameroun S.A.
-CA,302,220,Telus,Telus Mobility
-CA,302,221,Telus,Telus Mobility
-CA,302,270,unknown,EastLink
-CA,302,290,,Airtel Wireless
-CA,302,320,Mobilicity,DAVE Wireless
-CA,302,350,FIRST,FIRST Networks Operations
-CA,302,360,MiKe,Telus Mobility
-CA,302,361,Telus,Telus Mobility
-CA,302,370,Fido,Fido Solutions (Rogers Wireless)
-CA,302,380,DMTS,Dryden Mobility
-CA,302,490,WIND Mobile,Globalive Communications
-CA,302,500,Videotron,Videotron
-CA,302,510,Videotron,Videotron
-CA,302,610,Bell,Bell Mobility
-CA,302,610,Bell,Virgin Mobile Canada
-CA,302,620,ICE Wireless,ICE Wireless
-CA,302,640,Bell,Bell Mobility
-CA,302,652,,BC Tel Mobility (Telus)
-CA,302,653,Telus,Telus Mobility
-CA,302,655,MTS,MTS Mobility
-CA,302,656,TBay,Thunder Bay Telephone Mobility
-CA,302,657,Telus,Telus Mobility
-CA,302,660,MTS,MTS Mobility
-CA,302,680,SaskTel,SaskTel Mobility
-CA,302,701,,MB Tel Mobility
-CA,302,702,,MT&T Mobility (Aliant)
-CA,302,703,,New Tel Mobility (Aliant)
-CA,302,710,Globalstar,
-CA,302,720,Rogers Wireless,Rogers Communications
-CA,302,780,SaskTel,SaskTel Mobility
-CA,302,880,Bell / Telus / SaskTel,"Shared Telus, Bell, and SaskTel"
-CV,625,01,CVMOVEL,"CVMovel, S.A."
-CV,625,02,T+,T+
-KY,346,140,LIME,Cable & Wireless (Cayman Islands) Limited
-KY,346,50,Digicel,Digicel Cayman Ltd.
-CF,623,01,CTP,Centrafrique Telecom Plus
-CF,623,02,TC,Telecel Centrafrique
-CF,623,03,Orange,Orange RCA
-CF,623,04,Nationlink,Nationlink Telecom RCA
-TD,622,01,Airtel,Bharti Airtel SA
-TD,622,02,,Tchad Mobile
-TD,622,03,,TIGO - Millicom
-TD,622,04,Salam,Sotel Mobile
-CL,730,01,entel,Entel PCS Telecomunicaciones S.A.
-CL,730,02,movistar,Telefónica Móvil de Chile
-CL,730,03,Claro,Claro Chile S.A.
-CL,730,04,Nextel,Centennial Cayman Corp. Chile
-CL,730,08,VTR Móvil,VTR S.A.
-CL,730,09,Nextel,Centennial Cayman Corp. Chile
-CL,730,10,entel,Entel Telefonía Móvil S.A.
-CL,730,99,Will,WILL Telefonía
-CN,460,00,China Mobile,China Mobile
-CN,460,01,China Unicom,China Unicom
-CN,460,02,China Mobile,China Mobile
-CN,460,03,China Telecom,China Telecom
-CN,460,05,China Telecom,China Telecom
-CN,460,06,China Unicom,China Unicom
-CN,460,07,China Mobile,China Mobile
-CN,460,20,China Tietong,China Tietong
-CO,732,001,,Colombia Telecomunicaciones S.A.
-CO,732,002,Edatel,Edatel S.A.
-CO,732,101,Comcel,Comcel Colombia
-CO,732,102,movistar,Bellsouth Colombia
-CO,732,103,Tigo,Colombia Móvil
-CO,732,111,Tigo,Colombia Móvil
-CO,732,123,movistar,Telefónica Móviles Colombia
-KM,654,01,,HURI - SNPT
-CG,629,01,Airtel,Celtel Congo
-CG,629,10,Libertis Telecom,MTN CONGO S.A
-CG,629,07,,Warid Telecom
-CK,548,01,,Telecom Cook
-CR,712,01,Kolbi ICE,Instituto Costarricense de Electricidad
-CR,712,02,Kolbi ICE,Instituto Costarricense de Electricidad
-CR,712,03,Claro,Claro CR Telecomunicaciones
-CR,712,04,movistar,Telefonica Móviles Costa Rica
-HR,219,01,T-Mobile,T-Mobile Croatia
-HR,219,02,Tele2,Tele2
-HR,219,10,Vip,Vipnet
-CU,368,01,CUBACEL,"Empresa de Telecomunicaciones de Cuba, SA"
-CY,280,01,Cytamobile-Vodafone,Cyprus Telecommunications Auth
-CY,280,10,MTN,Areeba Ltd
-CZ,230,01,T-Mobile,T-Mobile Czech Republic
-CZ,230,02,O2,Telefónica Czech Republic
-CZ,230,03,Vodafone,Vodafone Czech Republic
-CZ,230,04,U:fon,"MobilKom, a. s."
-CZ,230,05,,"TRAVEL TELEKOMMUNIKATION, s.r.o."
-CZ,230,06,,"OSNO TELECOMUNICATION, s.r.o."
-CZ,230,98,,"Správa železniční dopravní cesty, s.o."
-CZ,230,99,Vodafone,Vodafone Czech Republic
-CD,630,01,Vodacom,Vodacom Congo RDC sprl
-CD,630,02,Zain,Celtel Congo
-CD,630,04,,Cellco
-CD,630,05,Supercell,Supercell SPRL
-CD,630,10,Libertis Telecom,
-CD,630,86,CCT,Congo-Chine Telecom s.a.r.l.
-CD,630,89,SAIT Telecom,OASIS SPRL
-DK,238,01,TDC,TDC A/S
-DK,238,02,Telenor,Telenor Denmark
-DK,238,03,,MIGway A/S
-DK,238,05,,ApS KBUS
-DK,238,06,3,Hi3G Denmark ApS
-DK,238,07,,Barablu Mobile Ltd.
-DK,238,09,,Dansk Beredskabskommunikation A/S
-DK,238,10,TDC,TDC A/S
-DK,238,11,,Dansk Beredskabskommunikation A/S
-DK,238,12,,Lycamobile Denmark Ltd
-DK,238,20,Telia,
-DK,238,30,Telia,Telia Nättjänster Norden AB
-DK,238,40,,Ericsson Danmark A/S
-DK,238,77,Telenor,Telenor Denmark
-DJ,638,01,Evatis,Djibouti Telecom SA
-DM,366,020,Digicel,Digicel Group Limited
-DM,366,110,,Cable & Wireless
-DO,370,01,Orange,Orange Dominicana
-DO,370,02,Claro,"Compañía Dominicana de Teléfonos, C por"
-DO,370,03,Tricom,Tricom S.A.
-DO,370,04,Viva,"Trilogy Dominicana, S.A."
-TL,514,02,,Timor Telecom
-EC,740,00,Movistar,Otecel S.A.
-EC,740,01,Claro,CONECEL S.A.
-EC,740,02,Alegro,Corporación Nacional de Telecomunicaciones CNT EP
-EG,602,01,Mobinil,ECMS-Mobinil
-EG,602,02,Vodafone,Vodafone Egypt
-EG,602,03,Etisalat,Etisalat Egypt
-SV,706,01,CTE Telecom Personal,CTE Telecom Personal SA de CV
-SV,706,02,digicel,Digicel Group
-SV,706,03,Tigo,Telemovil EL Salvador S.A.
-SV,706,04,movistar,Telefónica Móviles El Salvador
-SV,706,11,Claro,América Móvil
-GQ,627,01,Orange GQ,GETESA
-GQ,627,03,Hits GQ,HiTs EG.SA
-ER,657,01,Eritel,Eritrea Telecommunications Services Corporation
-EE,248,01,EMT,Estonian Mobile Telecom
-EE,248,02,Elisa,Elisa Eesti
-EE,248,03,Tele 2,Tele 2 Eesti
-EE,248,04,,OY Top Connect
-EE,248,05,,AS Bravocom Mobiil
-EE,248,06,,Progroup Holding
-ET,636,01,ETH-MTN,Ethio Telecom
-FO,288,01,Faroese Telecom,Faroese Telecom
-FO,288,02,Vodafone,Vodafone Faroe Islands
-FJ,542,01,Vodafone,Vodafone Fiji
-FJ,542,02,Digicel,Digicel Fiji
-FI,244,03,DNA,DNA Oy
-FI,244,05,Elisa,Elisa Oyj
-FI,244,07,Nokia,Nokia Test Network
-FI,244,08,,Unknown
-FI,244,10,,TDC Oy
-FI,244,11,VIRVE,Suomen Erillisverkot Oy
-FI,244,12,DNA,DNA Oy
-FI,244,14,AMT,Ålands Mobiltelefon
-FI,244,15,SAMK,Samk student network
-FI,244,21,Saunalahti,Elisa Oyj
-FI,244,29,,Scnl Truphone
-FI,244,91,Sonera,TeliaSonera Finland Oyj
-FR,208,00,Orange,France Télécom
-FR,208,01,Orange,France Télécom
-FR,208,02,Orange,France Télécom
-FR,208,05,,Globalstar Europe
-FR,208,06,,Globalstar Europe
-FR,208,07,,Globalstar Europe
-FR,208,10,SFR,Vivendi
-FR,208,11,SFR,Vivendi
-FR,208,13,SFR,Vivendi
-FR,208,14,Free Mobile,Iliad
-FR,208,15,Free Mobile,Iliad
-FR,208,20,Bouygues,Bouygues Telecom
-FR,208,21,Bouygues,Bouygues Telecom
-FR,208,22,Transatel Mobile,Transatel
-FR,208,88,Bouygues,Bouygues Telecom
-PF,547,20,Vini,Tikiphone SA
-GA,628,01,Libertis,Gabon Telecom & Libertis S.A.
-GA,628,02,Moov,Atlantique Télécom (Etisalat Group) Gabon S.A.
-GA,628,03,Airtel,Airtel Gabon S.A.
-GA,628,04,Azur,USAN Gabon S.A.
-GM,607,01,Gamcel,Gamcel
-GM,607,02,Africel,Africel
-GM,607,03,Comium,Comium
-GM,607,04,QCell,QCell Gambia
-GE,282,01,Geocell,Geocell Limited
-GE,282,02,MagtiCom,Magticom GSM
-GE,282,03,MagtiCom,Magtifix
-GE,282,04,Beeline,Mobitel LLC
-GE,282,05,Silknet,Silknet CDMA
-DE,262,01,T-Mobile,T-Mobile Deutschland GmbH
-DE,262,02,Vodafone,Vodafone D2 GmbH
-DE,262,03,E-Plus,E-Plus Mobilfunk
-DE,262,04,Vodafone,
-DE,262,05,E-Plus,E-Plus Mobilfunk
-DE,262,06,T-Mobile,
-DE,262,07,O2,O2 (Germany) GmbH & Co. OHG
-DE,262,08,O2,
-DE,262,09,Vodafone,
-DE,262,10,,Arcor AG & Co
-DE,262,11,O2,
-DE,262,12,,Dolphin Telecom
-DE,262,13,,Mobilcom Multimedia
-DE,262,14,,Group 3G UMTS
-DE,262,15,Airdata,
-DE,262,16,Vistream,
-DE,262,42,27C3,Chaos Computer Club
-DE,262,43,LYCA,Lycamobile
-DE,262,60,,DB Telematik
-DE,262,76,,Siemens AG
-DE,262,77,E-Plus,
-DE,262,92,Nash Technologies,
-DE,262,901,Debitel,
-GH,620,01,MTN,MTN Group
-GH,620,02,Vodafone,Vodafone Group
-GH,620,03,tiGO,Millicom Ghana
-GH,620,04,Expresso,Kasapa / Hutchison Telecom
-GH,620,06,Airtel,Airtel
-GI,266,01,GibTel,Gibraltar Telecoms
-GI,266,06,CTS Mobile,CTS Gibraltar
-GR,202,01,Cosmote,COSMOTE - Mobile Telecommunications S.A.
-GR,202,05,Vodafone,Vodafone Greece
-GR,202,09,Wind,Wind Hellas Telecommunications S.A. (Q-Telecom)
-GR,202,10,Wind,Wind Hellas Telecommunications S.A.
-GL,290,01,,TELE Greenland A/S
-GD,352,030,Digicel,Digicel Grenada Ltd.
-GD,352,110,Cable & Wireless,Cable & Wireless Grenada Ltd.
-GP,340,01,Orange,Orange Caraïbe Mobiles
-GP,340,02,Outremer,Outremer Telecom
-GP,340,03,Telcell,Saint Martin et Saint Barthelemy Telcell Sarl
-GP,340,08,Dauphin,Dauphin Telecom
-GP,340,20,Digicel,DIGICEL Antilles Française Guyane
-GU,310,032,IT&E Wireless,"IT&E Overseas, Inc"
-GU,310,033,,Guam Telephone Authority
-GU,310,140,mPulse,GTA Wireless
-GU,310,370,docomo,docomo Pacific
-GU,311,250,i CAN_GSM,Wave Runner LLC
-GU,310,470,docomo,docomo Pacific
-GT,704,01,Claro,Servicios de Comunicaciones Personales Inalambricas (SERCOM)
-GT,704,02,Comcel / Tigo,Millicom / Local partners
-GT,704,03,movistar,Telefonica Móviles Guatemala (Telefónica)
-GB,234,55,Sure Mobile,Cable & Wireless Guernsey
-GB,234,50,Wave Telecom,Wave Telecom (JT-Wave)
-GB,234,03,Airtel Vodafone,Guernsey Airtel Ltd
-GN,611,01,Orange S.A.,Orange
-GN,611,02,Sotelgui,Sotelgui Lagui
-GN,611,03,Telecel Guinee,INTERCEL Guinée
-GN,611,04,MTN,Areeba Guinea
-GN,611,05,Cellcom,Cellcom
-GW,632,02,Areeba,Spacetel Guiné-Bissau S.A.
-GW,632,03,Orange,
-GY,738,01,Digicel,U-Mobile (Cellular) Inc.
-GY,738,02,GT&T Cellink Plus,Guyana Telephone & Telegraph Co.
-HT,372,01,Voila,Communication Cellulaire d'Haiti S.A.
-HT,372,02,Digicel,Unigestion Holding S.A.
-HT,372,03,NATCOM,Telecommunication S.A.
-HN,708,01,Claro,Servicios de Comunicaciones de Honduras S.A. de C.V.
-HN,708,02,Tigo,Celtel / Tigo
-HN,708,30,Hondutel,Empresa Hondureña de Telecomunicaciones
-HN,708,40,DIGICEL,Digicel de Honduras
-HK,454,00,1O1O / One2Free,CSL Limited merged New World
-HK,454,01,,CITIC Telecom 1616
-HK,454,02,,CSL Limited
-HK,454,03,3 (3G),Hutchison Telecom
-HK,454,04,3 (2G),Hutchison Telecom
-HK,454,05,3 (CDMA),Hutchison Telecom
-HK,454,06,SmarTone,SmarTone Mobile Communications Limited
-HK,454,07,,China Unicom (Hong Kong) Limited
-HK,454,08,,Trident Telecom
-HK,454,09,,China Motion Telecom
-HK,454,10,New World Mobility,CSL Limited
-HK,454,11,,China-Hong Kong Telecom
-HK,454,12,CMCC HK,China Mobile Hong Kong Company Limited
-HK,454,14,,Hutchison Telecom
-HK,454,15,,SmarTone Mobile Communications Limited
-HK,454,16,PCCW Mobile (2G),PCCW Limited
-HK,454,17,,SmarTone Mobile Communications Limited
-HK,454,18,,CSL Limited
-HK,454,19,PCCW Mobile (3G),PCCW Limited
-HK,454,29,PCCW Mobile (CDMA),PCCW Limited
-HU,216,01,Telenor,Telenor Magyarország Zrt.
-HU,216,30,T-Mobile,Magyar Telekom Plc
-HU,216,70,Vodafone,Vodafone Magyarország Zrt.
-IS,274,01,Síminn,Iceland Telecom
-IS,274,02,Vodafone,Og fjarskipti hf
-IS,274,03,Vodafone,Vodafone Iceland
-IS,274,04,Viking,IMC Island ehf
-IS,274,06,,Núll níu ehf
-IS,274,07,IceCell,IceCell ehf
-IS,274,08,On-waves,Iceland Telecom
-IS,274,11,Nova,Nova ehf
-IS,274,12,Tal,Tal hf
-IN,404,01,Vodafone IN,Haryana
-IN,404,02,AirTel,Punjab
-IN,404,03,AirTel,Himachal Pradesh
-IN,404,04,IDEA,Delhi & NCR
-IN,404,05,Vodafone IN,Gujarat
-IN,404,07,IDEA,Andhra Pradesh
-IN,404,09,Reliance,Assam
-IN,404,10,AirTel,Delhi & NCR
-IN,404,11,Vodafone IN,Delhi & NCR
-IN,404,12,IDEA,Haryana
-IN,404,13,Vodafone IN,Andhra Pradesh
-IN,404,14,IDEA,Punjab
-IN,404,15,Vodafone IN,Uttar Pradesh (East)
-IN,404,17,AIRCEL,West Bengal
-IN,404,19,IDEA,Kerala
-IN,404,20,Vodafone IN,Mumbai
-IN,404,21,Loop Mobile,Mumbai
-IN,404,22,IDEA,Maharashtra & Goa
-IN,404,24,IDEA,Gujarat
-IN,404,25,AIRCEL,Bihar
-IN,404,27,Vodafone IN,Maharashtra & Goa
-IN,404,28,AIRCEL,Orissa
-IN,404,29,AIRCEL,Assam
-IN,404,30,Vodafone IN,Kolkata
-IN,404,31,AirTel,Kolkata
-IN,404,34,CellOne,Haryana
-IN,404,36,Reliance,Bihar & Jharkhand
-IN,404,37,Aircel,Jammu & Kashmir
-IN,404,38,CellOne,Assam
-IN,404,41,Aircel,Chennai
-IN,404,42,Aircel,Tamil Nadu
-IN,404,44,IDEA,Karnataka
-IN,404,45,Airtel,Karnataka
-IN,404,46,Vodafone IN,Kerala
-IN,404,48,Dishnet Wireless,Unknown
-IN,404,49,Airtel,Andhra Pradesh
-IN,404,51,CellOne,Himachal Pradesh
-IN,404,52,Reliance,Orissa
-IN,404,53,CellOne,Punjab
-IN,404,54,CellOne,Uttar Pradesh (West)
-IN,404,55,CellOne,Uttar Pradesh (East)
-IN,404,71,CellOne,Karnataka (Bangalore)
-IN,404,56,IDEA,Uttar Pradesh (West)
-IN,404,57,CellOne,Gujarat
-IN,404,58,CellOne,Madhya Pradesh & Chhattisgarh
-IN,404,59,CellOne,Rajasthan
-IN,404,60,Vodafone IN,Rajasthan
-IN,404,62,CellOne,Jammu & Kashmir
-IN,404,64,CellOne,Chennai
-IN,404,66,CellOne,Maharashtra & Goa
-IN,404,67,Reliance GSM,Madhya Pradesh & Chhattisgarh
-IN,404,68,DOLPHIN,Delhi & NCR
-IN,404,69,DOLPHIN,Mumbai
-IN,404,72,CellOne,Kerala
-IN,404,74,CellOne,West Bengal
-IN,404,76,CellOne,Orissa
-IN,404,78,Idea Cellular Ltd,Madhya Pradesh & Chattishgarh
-IN,404,80,BSNL MOBILE,Bharat Sanchar Nigam Limited
-IN,404,81,CellOne,Kolkata
-IN,404,82,Idea,Himachal Pradesh
-IN,404,83,Reliance Smart GSM,Kolkata
-IN,404,84,Vodafone IN,Chennai
-IN,404,85,Reliance,West Bengal
-IN,404,86,Vodafone IN,Karnataka
-IN,404,87,Idea,Rajisthan
-IN,404,88,Vodafone IN,Vodafone Punjab
-IN,404,89,Idea,Uttar Pradesh (East)
-IN,404,90,AirTel,Maharashtra & Goa
-IN,404,91,AIRCEL,Kolkata
-IN,404,92,AirTel,Mumbai
-IN,404,93,AirTel,Madhya Pradesh
-IN,404,96,AirTel,Haryana
-IN,405,01,Reliance,Andhra Pradesh
-IN,405,03,Reliance,Bihar
-IN,405,04,Reliance,Chennai
-IN,405,05,Reliance,Delhi & NCR
-IN,405,09,Reliance,Jammu & Kashmir
-IN,405,10,Reliance,Karnataka
-IN,405,13,Reliance,Maharashtra & Goa
-IN,405,025,TATA Teleservice,Andhra Pradesh
-IN,405,026,TATA Teleservice,Assam
-IN,405,027,TATA Teleservice,Bihar/Jharkhand
-IN,405,029,TATA Teleservice,Delhi
-IN,405,030,TATA Teleservice,Gujarat
-IN,405,031,TATA Teleservice,Haryana
-IN,405,032,TATA Teleservice,Himachal Pradesh
-IN,405,033,TATA Teleservice,Jammu & Kashmir
-IN,405,034,TATA Teleservice,Karnataka
-IN,405,035,TATA Teleservice,Kerala
-IN,405,036,TATA Teleservice,Kolkata
-IN,405,037,TATA Teleservice,Maharashtra & Goa
-IN,405,038,TATA Teleservice,Madhya Pradesh
-IN,405,039,TATA Teleservice,Mumbai
-IN,405,041,TATA Teleservice,Orissa
-IN,405,042,TATA Teleservice,Punjab
-IN,405,043,TATA Teleservice,Rajasthan
-IN,405,044,TATA Teleservice,Tamil Nadu including Chennai
-IN,405,045,TATA Teleservice,[Uttar Pradesh (E)]
-IN,405,046,TATA Teleservice,[Uttar Pradesh (W) & Uttarkhand ]
-IN,405,047,TATA Teleservice,[West Bengal]
-IN,405,51,AirTel,West Bengal
-IN,405,52,AirTel,Bihar & Jharkhand
-IN,405,54,AirTel,Uttar Pradesh (East)
-IN,405,55,Airtel,Jammu & Kashmir
-IN,405,56,AirTel,Assam
-IN,405,66,Vodafone IN,Uttar Pradesh (West)
-IN,405,70,IDEA,Bihar & Jharkhand
-IN,405,750,Vodafone IN,Jammu & Kashmir
-IN,405,751,Vodafone IN,Assam
-IN,405,752,Vodafone IN,Bihar & Jharkhand
-IN,405,753,Vodafone IN,Orissa
-IN,405,754,Vodafone IN,Himachal Pradesh
-IN,405,755,Vodafone IN,North East
-IN,405,756,Vodafone IN,Madhya Pradesh & Chhattisgarh
-IN,405,799,IDEA,Mumbai
-IN,405,800,AIRCEL,Delhi & NCR
-IN,405,801,AIRCEL,Andhra Pradesh
-IN,405,802,AIRCEL,Gujarat
-IN,405,803,AIRCEL,Karnataka
-IN,405,804,AIRCEL,Maharashtra & Goa
-IN,405,805,AIRCEL,Mumbai
-IN,405,806,AIRCEL,Rajasthan
-IN,405,807,AIRCEL,Haryana
-IN,405,808,AIRCEL,Madhya Pradesh
-IN,405,809,AIRCEL,Kerala
-IN,405,810,AIRCEL,Uttar Pradesh (East)
-IN,405,811,AIRCEL,Uttar Pradesh (West)
-IN,405,812,AIRCEL,Punjab
-IN,405,819,Uninor,Andhra Pradesh
-IN,405,818,Uninor,Uttar Pradesh (West)
-IN,405,820,Uninor,Karnataka
-IN,405,821,Uninor,Kerala
-IN,405,822,Uninor,Kolkata
-IN,405,824,Videocon Datacom,Assam
-IN,405,827,Videocon Datacom,Gujarat
-IN,405,834,Videocon Datacom,Madhya Pradesh
-IN,405,844,Uninor,Delhi & NCR
-IN,405,845,IDEA,Assam
-IN,405,86,IDEA,Jammu & Kashmir
-IN,405,848,IDEA,Kolkata
-IN,405,850,IDEA,Orissa
-IN,405,855,Loop Mobile,Assam
-IN,405,864,Loop Mobile,Kolkata
-IN,405,865,Loop Mobile,Madhya Pradesh
-IN,405,875,Uninor,Assam
-IN,405,880,Uninor,West Bengal
-IN,405,881,S Tel,Assam
-IN,405,912,Etisalat DB(cheers),Andhra Pradesh
-IN,405,913,Etisalat DB(cheers),Delhi & NCR
-IN,405,914,Etisalat DB(cheers),Gujarat
-IN,405,917,Etisalat DB(cheers),Kerala
-IN,404,927,Uninor,Gujarat
-IN,405,929,Uninor,Maharashtra
-ID,510,00,PSN,PT Pasifik Satelit Nusantara (ACeS)
-ID,510,01,INDOSAT,PT Indonesian Satellite Corporation Tbk (INDOSAT)
-ID,510,03,StarOne,PT Indosat Tbk
-ID,510,07,TelkomFlexi,PT Telkom
-ID,510,08,AXIS,PT Natrindo Telepon Seluler
-ID,510,09,SMART,PT Smart Telecom
-ID,510,10,Telkomsel,PT Telekomunikasi Selular
-ID,510,11,XL,PT XL Axiata Tbk
-ID,510,20,TELKOMMobile,PT Telkom Indonesia Tbk
-ID,510,21,IM3,PT Indonesian Satellite Corporation Tbk (INDOSAT)
-ID,510,27,Ceria,PT Sampoerna Telekomunikasi Indonesia
-ID,510,28,Fren/Hepi,PT Mobile-8 Telecom
-ID,510,89,3,PT Hutchison CP Telecommunications
-ID,510,99,Esia,PT Bakrie Telecom
-IR,432,11,IR-MCI,Mobile Communications Company of Iran
-IR,432,14,TKC,KFZO
-IR,432,19,MTCE,Mobile Telecommunications Company of Esfahan
-IR,432,32,Taliya,Rafsanjan Industrial Complex
-IR,432,35,Irancell,Irancell Telecommunications Services Company
-IR,432,70,TCI,Telephone Communications Company of Iran
-IR,432,93,Iraphone,Iraphone
-IQ,418,05,Asia Cell,Asia Cell Telecommunications Company
-IQ,418,08,SanaTel,
-IQ,418,20,Zain,Zain Iraq
-IQ,418,30,Zain,Zain Iraq
-IQ,418,40,Korek,Korek Telecom Ltd
-IQ,418,45,Mobitel,Mobitel Co. Ltd.
-IQ,418,92,Omnnea,Omnnea Wireless
-IE,272,01,Vodafone,Vodafone Ireland
-IE,272,02,O2,O2 Ireland
-IE,272,03,Meteor,Meteor Mobile Communications
-IE,272,04,,Access Telecom
-IE,272,05,3,Hutchison 3G Ireland limited
-IE,272,07,Eircom,Eircom Mobile
-IE,272,09,,Clever Communications
-IE,272,11,,Liffey Telecom
-IM,234,58,Pronto GSM,Manx Telecom
-IM,234,09,Sure Mobile,Cable & Wireless Isle of Man Ltd.
-IL,425,01,Orange,Partner Communications Company Ltd
-IL,425,02,Cellcom,
-IL,425,03,Pelephone,
-IL,425,77,Mirs,
-IT,222,01,TIM,Telecom Italia SpA
-IT,222,02,Elsacom,
-IT,222,07,Noverca,
-IT,222,10,Vodafone,Vodafone Omnitel N.V.
-IT,222,30,RFI,Rete Ferroviaria Italiana
-IT,222,77,IPSE 2000,
-IT,222,88,Wind,Wind Telecomunicazioni SpA
-IT,222,98,Blu,
-IT,222,99,3 Italia,Hutchison 3G
-CI,612,01,,Cora de Comstar
-CI,612,02,Moov,
-CI,612,03,Orange,
-CI,612,04,KoZ,Comium Ivory Coast Inc
-CI,612,05,MTN,
-CI,612,06,ORICEL,ORICEL
-JM,338,020,LIME,Cable & Wireless
-JM,338,050,Digicel,Digicel (Jamaica) Limited
-JM,338,070,Claro,Oceanic Digital Jamaica Limited
-JM,338,180,LIME,Cable & Wireless
-JP,440,00,eMobile,EMOBILE Limited
-JP,440,01,NTT docomo,NTT docomo
-JP,440,02,NTT docomo,NTT DoCoMo Kansai
-JP,440,03,NTT docomo,NTT DoCoMo Hokuriku
-JP,440,04,SoftBank,SoftBank Mobile Corp
-JP,440,06,SoftBank,SoftBank Mobile Corp
-JP,440,07,KDDI,KDDI Corporation
-JP,440,08,KDDI,KDDI Corporation
-JP,440,09,NTT docomo,NTT DoCoMo Kansai
-JP,440,10,NTT docomo,NTT DoCoMo Kansai
-JP,440,11,NTT docomo,NTT DoCoMo Tokai
-JP,440,12,NTT docomo,NTT DoCoMo
-JP,440,13,NTT docomo,NTT DoCoMo
-JP,440,14,NTT docomo,NTT DoCoMo Tohoku
-JP,440,15,NTT docomo,NTT DoCoMo
-JP,440,16,NTT docomo,NTT DoCoMo
-JP,440,17,NTT docomo,NTT DoCoMo
-JP,440,18,NTT docomo,NTT DoCoMo Tokai
-JP,440,19,NTT docomo,NTT DoCoMo Hokkaido
-JP,440,20,SoftBank,SoftBank Mobile Corp
-JP,440,21,NTT docomo,NTT DoCoMo
-JP,440,22,NTT docomo,NTT DoCoMo Kansai
-JP,440,23,DoCoMo,NTT DoCoMo Tokai
-JP,440,24,DoCoMo,NTT DoCoMo Chugoku
-JP,440,25,DoCoMo,NTT DoCoMo Hokkaido
-JP,440,26,DoCoMo,NTT DoCoMo Kyushu
-JP,440,27,DoCoMo,NTT DoCoMoTohoku
-JP,440,28,DoCoMo,NTT DoCoMo Shikoku
-JP,440,29,DoCoMo,NTT DoCoMo
-JP,440,30,DoCoMo,NTT DoCoMo
-JP,440,31,DoCoMo,NTT DoCoMo Kansai
-JP,440,32,DoCoMo,NTT DoCoMo
-JP,440,33,DoCoMo,NTT DoCoMo Tokai
-JP,440,34,DoCoMo,NTT DoCoMo Kyushu
-JP,440,35,DoCoMo,NTT DoCoMo Kansai
-JP,440,36,DoCoMo,NTT DoCoMo
-JP,440,37,DoCoMo,NTT DoCoMo
-JP,440,38,DoCoMo,NTT DoCoMo
-JP,440,39,DoCoMo,NTT DoCoMo
-JP,440,40,SoftBank,SoftBank Mobile Corp
-JP,440,41,SoftBank,SoftBank Mobile Corp
-JP,440,42,SoftBank,SoftBank Mobile Corp
-JP,440,43,SoftBank,SoftBank Mobile Corp
-JP,440,44,SoftBank,SoftBank Mobile Corp
-JP,440,45,SoftBank,SoftBank Mobile Corp
-JP,440,46,SoftBank,SoftBank Mobile Corp
-JP,440,47,SoftBank,SoftBank Mobile Corp
-JP,440,48,SoftBank,SoftBank Mobile Corp
-JP,440,49,DoCoMo,NTT DoCoMo
-JP,440,50,KDDI,KDDI Corporation
-JP,440,51,KDDI,KDDI Corporation
-JP,440,52,KDDI,KDDI Corporation
-JP,440,53,KDDI,KDDI Corporation
-JP,440,54,KDDI,KDDI Corporation
-JP,440,55,KDDI,KDDI Corporation
-JP,440,56,KDDI,KDDI Corporation
-JP,440,58,DoCoMo,NTT DoCoMo Kansai
-JP,440,60,DoCoMo,NTT DoCoMo Kansai
-JP,440,61,DoCoMo,NTT DoCoMo Chugoku
-JP,440,62,DoCoMo,NTT DoCoMo Kyushu
-JP,440,63,DoCoMo,NTT DoCoMo
-JP,440,64,DoCoMo,NTT DoCoMo
-JP,440,65,DoCoMo,NTT DoCoMo Shikoku
-JP,440,66,DoCoMo,NTT DoCoMo
-JP,440,67,DoCoMo,NTT DoCoMo Tohoku
-JP,440,68,DoCoMo,NTT DoCoMo Kyushu
-JP,440,69,DoCoMo,NTT DoCoMo
-JP,440,70,au,KDDI Corporation
-JP,440,71,KDDI,KDDI Corporation
-JP,440,72,KDDI,KDDI Corporation
-JP,440,73,KDDI,KDDI Corporation
-JP,440,74,KDDI,KDDI Corporation
-JP,440,75,KDDI,KDDI Corporation
-JP,440,76,KDDI,KDDI Corporation
-JP,440,77,KDDI,KDDI Corporation
-JP,440,78,,Okinawa Cellular Telephone
-JP,440,79,KDDI,KDDI Corporation
-JP,440,80,TU-KA,TU-KA Cellular Tokyo
-JP,440,81,TU-KA,TU-KA Cellular Tokyo
-JP,440,82,TU-KA,TU-KA Phone Kansai
-JP,440,83,TU-KA,TU-KA Cellular Tokai
-JP,440,84,TU-KA,TU-KA Phone Kansai
-JP,440,85,TU-KA,TU-KA Cellular Tokai
-JP,440,86,TU-KA,TU-KA Cellular Tokyo
-JP,440,87,DoCoMo,NTT DoCoMo Chugoku
-JP,440,88,KDDI,KDDI Corporation
-JP,440,89,KDDI,KDDI Corporation
-JP,440,90,SoftBank,SoftBank Mobile Corp
-JP,440,92,SoftBank,SoftBank Mobile Corp
-JP,440,93,SoftBank,SoftBank Mobile Corp
-JP,440,94,SoftBank,SoftBank Mobile Corp
-JP,440,95,SoftBank,SoftBank Mobile Corp
-JP,440,96,SoftBank,SoftBank Mobile Corp
-JP,440,97,SoftBank,SoftBank Mobile Corp
-JP,440,98,SoftBank,SoftBank Mobile Corp
-JP,440,99,DoCoMo,NTT DoCoMo
-JE,234,50,JT-Wave,Jersey Telecom (JT-Wave)
-JE,234,55,Sure Mobile,Cable & Wireless Jersey Limited
-JE,234,03,Airtel Vodafone,JERSEY AIRTEL LIMITED
-JO,416,01,zain JO,Jordan Mobile Telephone Services
-JO,416,02,XPress Telecom,
-JO,416,03,Umniah,Umniah Mobile Company
-JO,416,77,Orange,Petra Jordanian Mobile Telecommunications Company (MobileCom)
-KZ,401,01,Beeline,KaR-Tel LLP
-KZ,401,02,Kcell,GSM Kazakhstan Ltd
-KZ,401,07,Dalacom,
-KZ,401,08,Kazakhtelecom,
-KZ,401,77,Mobile Telecom Service,Mobile Telecom Service LLP
-KE,639,02,Safaricom,Safaricom Limited
-KE,639,03,Airtel,B Airtel
-KE,639,07,Orange Kenya,Telkom Kenya
-KE,639,05,yu,Econet Wireless Kenya
-KI,545,09,Kiribati Frigate,Telecom Services Kiribati Ltd
-KP,467,192,Koryolink,Cheo Technology Jv Company
-KP,467,193,SunNet,Korea Posts and Telecommunications Corporation
-KR,450,02,KT,KT
-KR,450,03,Power 017,"Shinsegi Telecom, Inc."
-KR,450,04,KT,KT
-KR,450,05,SKT,SK Telecom
-KR,450,06,LGU+,LG Telecom
-KR,450,08,olleh,KT
-RKS,212,01,Vala,PTK - Directory of Post of Kosovo
-RKS,293,41,IPKO,IPKO
-RKS,212,01,Z Mobile,Dardaphone
-KW,419,02,zain KW,Zain Kuwait
-KW,419,03,Wataniya,National Mobile Telecommunications
-KW,419,04,Viva,Kuwait Telecommunication Company
-KG,437,01,Beeline,Sky Mobile LLC
-KG,437,03,Fonex,Aktel Ltd
-KG,437,05,MegaCom,Alfa Telecom CJSC
-KG,437,09,O!,NurTelecom LLC
-LA,457,01,LaoTel,Lao Shinawatra Telecom
-LA,457,02,ETL,Enterprise of Telecommunications Lao
-LA,457,03,Unitel,"Star Telecom Co., Ltd"
-LA,457,08,Tigo,Millicom Lao Co Ltd
-LV,247,01,LMT,Latvian Mobile Telephone
-LV,247,02,Tele2,Tele2
-LV,247,03,TRIATEL,Telekom Baltija
-LV,247,05,Bite,Bite Latvija
-LV,247,06,,Rigatta
-LV,247,07,MTS,Master Telecom
-LV,247,08,IZZI,IZZI
-LV,247,09,Camel Mobile,Camel Mobile
-LB,415,01,Alfa,MIC 1
-LB,415,03,mtc touch,MIC 2
-LB,415,05,Ogero Mobile,Ogero Telecom
-LS,651,01,Vodacom,Vodacom Lesotho (Pty) Ltd
-LS,651,02,,Econet Ezin-cel
-LR,618,01,Lonestar Cell,Lonestar Communications Corporation
-LR,618,02,Libercell,Atlantic Wireless (Liberia) Inc.
-LR,618,04,Comium,Comium Liberia
-LR,618,07,Cellcom,"Cellcom Telecommunications, Inc"
-LR,618,20,LIBTELCO,Liberia Telecommunications Corporation
-LY,606,00,Libyana,Libyana
-LY,606,01,Madar,Al-Madar Al-Jadeed
-LY,606,02,Al-Jeel Phone,Al-Jeel Al-Jadeed
-LY,606,03,Libya Phone,Libya Telecom and Technology (LTT)
-LY,606,06,Hatef Libya,Hatef Libya
-LI,295,01,Swisscom,Swisscom Schweiz AG
-LI,295,02,Orange,Orange Liechtenstein AG
-LI,295,05,FL1,Mobilkom Liechtenstein AG
-LI,295,77,Alpmobil,Alpcom AG
-LI,295,04,Cubic Telecom,Cubic Telecom AG
-LT,246,01,Omnitel,
-LT,246,02,BITE,UAB Bité Lietuva
-LT,246,03,Tele 2,
-LT,246,05,LitRail,Lithuanian Railways
-LT,246,06,Mediafon,UAB Mediafon
-LU,270,01,LuxGSM,P&T Luxembourg
-LU,270,77,Tango,Tango SA
-LU,270,99,Orange,Orange S.A.
-MO,455,00,SmarTone,SmarTone Macao
-MO,455,01,CTM,C.T.M. Telemovel+
-MO,455,02,China Telecom,China Telecom
-MO,455,03,3,Hutchison Telecom
-MO,455,04,CTM,C.T.M. Telemovel+
-MO,455,05,3,Hutchison Telecom
-MK,294,01,T-Mobile MK,T-Mobile Macedonia
-MK,294,02,ONE,One
-MK,294,03,Vip MK,VIP Operator
-MG,646,01,Airtel,Bharti Airtel
-MG,646,02,Orange,Orange Madagascar S.A.
-MG,646,03,Sacel,Sacel Madagascar S.A.
-MG,646,04,Telma,Telma Mobile S.A.
-MW,650,01,TNM,Telecom Network Malawi
-MW,650,10,Airtel,Bharti Airtel Limited
-MY,502,01,ATUR 450,Telekom Malaysia Bhd
-MY,502,10,,DiGi Telecommunications
-MY,502,11,TM Homeline,Telekom Malaysia Bhd [78]
-MY,502,12,Maxis,Maxis Mobile Services SDN Berhad
-MY,502,13,Celcom,Celcom Axiata Berhad
-MY,502,14,,Telekom Malaysia Berhad for PSTN SMS
-MY,502,16,DiGi,DiGi Telecommunications
-MY,502,17,Hotlink,Maxis Prepaid
-MY,502,18,U Mobile,U Mobile Sdn Bhd
-MY,502,18,TM Homeline,Telekom Malaysia Bhd
-MY,502,19,Celcom,Celcom Axiata Berhad
-MY,502,20,,Electcoms Wireless Sdn Bhd
-MY,502,150,Tune Talk,Tune Talk Sdn Bhd
-MY,502,151,,Baraka Telecom Sdn Bhd (MVNE)
-MY,502,152,Yes,YTL Communications Sdn Bhd
-MV,472,01,Dhiraagu,Dhivehi Raajjeyge Gulhun
-MV,472,02,Wataniya,Wataniya Telecom Maldives
-ML,610,01,Malitel,Malitel SA
-ML,610,02,Orange,Orange Mali SA
-MT,278,01,Vodafone,Vodafone Malta
-MT,278,21,GO,Mobisle Communications Limited
-MT,278,77,Melita,Melita Plc
-MQ,340,01,Orange,Orange Caraïbe Mobiles
-MQ,340,02,Outremer,Outremer Telecom
-MQ,340,20,Digicel,DIGICEL Antilles Française Guyane
-MR,609,01,Mattel,Mattel
-MR,609,02,Chinguitel,Chinguitel
-MR,609,10,Mauritel,Mauritel Mobiles
-MU,617,01,Orange,Cellplus Mobile Communications Ltd.
-MU,617,02,MTML,Mahanagar Telephone (Mauritius) Ltd.
-MU,617,10,Emtel,Emtel Ltd
-MX,334,010,Nextel,Nextel México
-MX,334,020,Telcel,América Móvil / Mextel
-MX,334,030,movistar,Pegaso Comunicaciones y Sistemas
-MX,334,040,Iusacell / Unefon,Iusacell / Unefon
-MX,334,050,Iusacell,Iusacell
-FM,550,01,,FSM EMMANUEL
-MD,259,01,Orange,Orange Moldova
-MD,259,02,Moldcell,
-MD,259,03,IDC,Interdnestrcom
-MD,259,03,Unité,Moldtelecom
-MD,259,04,Eventis,Eventis Telecom
-MD,259,05,Unité,Moldtelecom
-MD,259,99,Unité,Moldtelecom
-MC,212,01,Office des Telephones,Monaco Telecom
-MN,428,99,MobiCom,Mobicom Corporation
-MN,428,88,Unitel,Unitel LLC
-MN,428,91,Skytel,Skytel LLC
-MN,428,98,G.Mobile,G-Mobile LLC
-ME,297,01,Telenor,Telenor Montenegro
-ME,297,02,T-Mobile,T-Mobile Montenegro LLC
-ME,297,03,m:tel CG,MTEL CG
-ME,297,04,T-Mobile,T-Mobile Montenegro
-MA,604,00,Méditel,Medi Telecom
-MA,604,01,IAM,Ittissalat Al Maghrib (Maroc Telecom)
-MA,604,05,INWI,WANA - Groupe ONA
-MZ,643,01,mCel,Mocambique Celular S.A.
-MZ,643,04,Vodacom,"Vodacom Mozambique, S.A."
-MM,414,01,MPT,Myanmar Post and Telecommunication
-NA,649,01,MTC,MTC Namibia
-NA,649,02,switch,Telecom Namibia
-NA,649,03,Leo,Orascom Telecom Holding
-NR,536,02,Digicel,Digicel (Nauru) Corporation
-NP,429,01,Namaste / NT Mobile,Nepal Telecom
-NP,429,02,Ncell,Ncell Pvt. Ltd. Spice Nepal
-NP,429,04,SmartCell,Smart Telecom Pvt. Ltd.
-NP,429,03,Sky/C-Phone,Nepal Telecom
-NL,204,01,,VastMobiel B.V.
-NL,204,02,Tele2,Tele2 Nederland B.V.
-NL,204,03,,Voiceworks B.V.
-NL,204,04,Vodafone,hollandsnieuwe
-NL,204,05,,Elephant Talk Communications Premium Rate Services
-NL,204,06,,Mundio Mobile (Netherlands) Ltd
-NL,204,07,,Teleena (MVNE)
-NL,204,08,KPN,KPN Mobile The Netherlands B.V.
-NL,204,09,Lycamobile,Lycamobile Netherlands Limited
-NL,204,10,KPN,KPN B.V.
-NL,204,12,Telfort,KPN Mobile The Netherlands B.V.
-NL,204,13,,Unica Installatietechniek B.V.
-NL,204,14,6Gmobile,6GMOBILE B.V.
-NL,204,15,,Ziggo B.V.
-NL,204,16,T-Mobile,T-Mobile Netherlands B.V
-NL,204,17,,Intercity Mobile Communications B.V.
-NL,204,18,,UPC Nederland B.V.
-NL,204,19,,Mixe Communication Solutions B.V.
-NL,204,20,T-Mobile,T-Mobile Netherlands B.V
-NL,204,21,,ProRail B.V.
-NL,204,22,,Ministerie van Defensie
-NL,204,23,,ASPIDER Solutions Nederland B.V.
-NL,204,24,,Private Mobility Nederland B.V.
-NL,204,25,,CapX B.V.
-NL,204,26,,SpeakUp B.V.
-NL,204,27,,Breezz Nederland B.V.
-NL,204,67,,RadioAccess B.V.
-NL,204,68,,Unify Group Holding B.V.
-NL,204,69,,KPN Mobile The Netherlands B.V.
-AN,362,51,Telcell,Telcell N.V.
-AN,362,69,Digicel,Curaçao Telecom N.V.
-AN,362,91,UTS,Setel N.V.
-AN,362,95,MIO,E.O.C.G. Wireless
-AN,362,94,Bayòs,Bòbò Frus N.V.
-NC,546,01,Mobilis,OPT New Caledonia
-NZ,530,00,Telecom,Telecom New Zealand
-NZ,530,01,Vodafone,Vodafone New Zealand
-NZ,530,02,Telecom,Telecom New Zealand
-NZ,530,03,Woosh,Woosh Wireless New Zealand
-NZ,530,04,TelstraClear,TelstraClear New Zealand
-NZ,530,05,XT Mobile Network,Telecom New Zealand
-NZ,530,24,2degrees,2degrees
-NI,710,21,Claro,"Empresa Nicaragüense de Telecomunicaciones, S.A."
-NI,710,30,movistar,Telefónica Móviles de Nicaragua S.A.
-NI,710,73,SERCOM,Servicios de Comunicaciones S.A.
-NE,614,01,SahelCom,
-NE,614,02,Airtel,Bharti Airtel Limited
-NE,614,03,Telecel,Telecel Niger SA
-NE,614,04,Orange,Orange Niger
-NG,621,20,Airtel,Bharti Airtel Limited
-NG,621,30,MTN,MTN Nigeria Communications Limited
-NG,621,40,M-Tel,Nigerian Mobile Telecommunications Limited
-NG,621,50,Glo,Globacom Ltd
-NG,621,60,Etisalat,Emerging Markets Telecommunication Services Ltd (Etisalat)
-NG,621,25,Visafone,Visafone Communications Ltd.
-NU,555,01,Telecom Niue,Telecom Niue
-NF,505,10,Norfolk Telecom,Norfolk Telecom
-NO,242,01,Telenor,
-NO,242,02,NetCom,NetCom GSM
-NO,242,03,Teletopia,Teletopia
-NO,242,04,Tele2,Mobile Norway AS
-NO,242,05,Network Norway,Mobile Norway AS
-NO,242,06,Ice,Nordisk Mobiltelefon
-NO,242,07,Ventelo,Ventelo AS
-NO,242,08,TDC,TDC Mobil AS
-NO,242,09,Com4,Com4 AS [106]
-NO,242,11,SystemNet,SystemNet AS [107]
-NO,242,20,,Jernbaneverket AS
-NO,242,23,Lyca,Lyca Mobile Ltd
-OM,422,02,Oman Mobile,Oman Telecommunications Company
-OM,422,03,Nawras,Omani Qatari Telecommunications Company SAOC
-PK,410,01,Mobilink,Mobilink-PMCL
-PK,410,03,Ufone,Pakistan Telecommunication Mobile Ltd
-PK,410,04,Zong,China Mobile
-PK,410,06,Telenor,Telenor Pakistan
-PK,410,07,Warid,WaridTel
-PW,552,01,PNCC,Palau National Communications Corp.
-PW,552,80,Palau Mobile,Palau Mobile Corporation
-PS,425,05,Jawwal,"Palestine Cellular Communications, Ltd."
-PS,425,06,Wataniya,Wataniya Palestine Mobile Telecommunications Company
-PA,714,01,Cable & Wireless,Cable & Wireless Panama S.A.
-PA,714,02,movistar,"Telefonica Moviles Panama S.A, Bell South Corp. (BSC)"
-PA,714,04,Digicel,Digicel Group
-PA,714,03,Claro,América Móvil
-PG,537,01,B-Mobile,Pacific Mobile Communications
-PG,537,03,Digicel,Digicel PNG
-PY,744,01,VOX,Hola Paraguay S.A
-PY,744,02,Claro,AMX Paraguay S.A.
-PY,744,04,Tigo,Telefonica Celular Del Paraguay S.A. (Telecel)
-PY,744,05,Personal,Núcleo S.A
-PY,744,06,Copaco,Copaco S.A.
-PE,716,06,Movistar,Telefónica Móviles Perú
-PE,716,07,NEXTEL,NII Holdings
-PE,716,10,Claro,América Móvil Perú
-PH,515,01,Islacom,Globe Telecom via Innove Communications
-PH,515,02,Globe,Globe Telecom
-PH,515,03,Smart,PLDT via Smart Communications
-PH,515,05,Sun,Digital Telecommunications Philippines
-PH,515,11,,PLDT via ACeS Philippines
-PH,515,18,Cure,PLDT via Smart's Connectivity Unlimited Resources Enterprise
-PH,515,88,,Nextel
-PL,260,01,Plus,Polkomtel S.A.
-PL,260,02,T-Mobile,Polska Telefonia Cyfrowa Sp. z o.o.
-PL,260,03,Orange,Polska Telefonia Komórkowa Centertel Sp. z o.o.
-PL,260,04,,not in use
-PL,260,05,,Polska Telefonia Komórkowa Centertel Sp. z o.o.
-PL,260,06,Play,P4 Sp. z o.o.
-PL,260,07,Netia,Netia S.A.
-PL,260,08,,E-Telko Sp. z o.o.
-PL,260,09,,Telekomunikacja Kolejowa Sp. z o.o.
-PL,260,10,Sferia,Sferia S.A.
-PL,260,11,Nordisk Polska,Nordisk Polska Sp. z o.o.
-PL,260,12,Cyfrowy Polsat,Cyfrowy Polsat S.A.
-PL,260,15,CenterNet,CenterNet S.A.
-PL,260,16,Mobyland,Mobyland Sp. z o.o.
-PL,260,17,Aero2,Aero 2 Sp. z o.o.
-PT,268,01,Vodafone,Vodafone Portugal
-PT,268,03,Optimus,"Sonaecom – Serviços de Comunicações, S.A."
-PT,268,06,TMN,Telecomunicações Móveis Nacionais
-PT,268,21,Zapp,Zapp Portugal
-PR,330,110,Claro,Puerto Rico Telephone Company
-PR,330,00,Open Mobile,PR Wireless
-QA,427,01,Qtel,Qtel
-QA,427,02,Vodafone,Vodafone Qatar
-QA,427,05,Ministry of Interior,Ministry of Interior
-RE,647,00,Orange,Orange La Réunion
-RE,647,02,Outremer,Outremer Telecom
-RE,647,10,SFR Reunion,Societe Reunionnaise de Radiotelephone
-RO,226,01,Vodafone,Vodafone România
-RO,226,02,Romtelecom,Romtelecom
-RO,226,03,Cosmote,Cosmote România
-RO,226,04,Cosmote,Cosmote România
-RO,226,05,Digi.Mobil,RCS&RDS
-RO,226,06,Cosmote,Cosmote România
-RO,226,10,Orange,Orange România
-RO,226,11,Enigma-System,Enigma-System
-RU,250,01,MTS,Mobile TeleSystems
-RU,250,02,MegaFon,MegaFon OJSC - previously known as North-West GSM
-RU,250,03,NCC,Nizhegorodskaya Cellular Communications
-RU,250,04,Sibchallenge,Sibchallenge
-RU,250,05,ETK,Yeniseytelecom
-RU,250,06,Skylink [10],CJSC Saratov System of Cellular Communications
-RU,250,07,SMARTS,Zao SMARTS
-RU,250,09,Skylink,Khabarovsky Cellular Phone
-RU,250,10,DTC,Dontelekom
-RU,250,11,,Orensot
-RU,250,12,Baykalwestcom,Baykal Westcom / New Telephone Company / Far Eastern Cellular
-RU,250,12,Akos,
-RU,250,13,KUGSM,Kuban GSM
-RU,250,15,SMARTS,"SMARTS Ufa, SMARTS Uljanovsk"
-RU,250,16,NTC,New Telephone Company
-RU,250,17,Utel,JSC Uralsvyazinform
-RU,250,19,INDIGO,INDIGO
-RU,250,20,Tele2,Tele2
-RU,250,23,Mobicom - Novosibirsk,Mobicom - Novosibirsk
-RU,250,28,Beeline,Beeline
-RU,250,35,MOTIV,MOTIV
-RU,250,38,Tambov GSM,Central Telecommunication Company
-RU,250,39,Utel,Uralsvyazinform
-RU,250,44,,Stavtelesot / North Caucasian GSM
-RU,250,92,,Primtelefon
-RU,250,93,,Telecom XXI
-RU,250,99,Beeline,OJSC Vimpel-Communications
-RW,635,10,MTN,MTN Rwandacell SARL
-RW,635,12,Rwandatel,Rwandatel S.A.
-RW,635,13,Tigo,TIGO RWANDA S.A
-SKN,356,050,Digicel,
-SKN,356,110,,LIME
-SKN,356,070,Chippie,UTS
-LC,358,050,Digicel[citation needed],
-LC,358,110,,Cable & Wireless
-PM,308,01,Ameris,St. Pierre-et-Miquelon Télécom
-VC,360,070,Digicel,
-VC,360,100,Cingular Wireless,
-VC,360,110,Cable & Wireless,Cable & Wireless
-WS,549,01,Digicel,Digicel Pacific Ltd.
-WS,549,27,SamoaTel,SamoaTel Ltd
-SM,292,01,PRIMA,San Marino Telecom
-ST,626,01,CSTmovel,Companhia Santomese de Telecomunicaçôe
-SA,420,01,Al Jawal,Saudi Telecom Company
-SA,420,03,Mobily,Etihad Etisalat Company
-SA,420,04,Zain SA,Zain Saudi Arabia
-SN,608,01,Orange,Sonatel
-SN,608,02,Tigo,Millicom International Cellular S.A.
-SN,608,03,Expresso,Sudatel
-RS,220,01,Telenor,Telenor Serbia
-RS,220,02,Telenor,Telenor Montenegro
-RS,220,03,mt:s,Telekom Srbija
-RS,220,05,VIP,VIP Mobile
-SC,633,01,Cable & Wireless,Cable & Wireless Seychelles
-SC,633,02,Mediatech International,Mediatech International
-SC,633,10,Airtel,Telecom Seychelles Ltd
-SL,619,01,Airtel,Bharti Airtel Limited
-SL,619,02,Tigo,Millicom (SL) Limited
-SL,619,03,Africell,Lintel Sierra Leone Limited
-SL,619,04,Comium,Comium Sierra leone INC
-SL,619,05,Africell,Lintel Sierra Leone Limited
-SL,619,25,Mobitel,Mobitel
-SG,525,01,SingTel,Singapore Telecom
-SG,525,02,SingTel-G18,Singapore Telecom
-SG,525,03,M1,MobileOne Asia
-SG,525,05,StarHub,StarHub Mobile
-SG,525,12,,Digital Trunked Radio Network
-SK,231,01,Orange,Orange Slovensko
-SK,231,02,T-Mobile,T-Mobile Slovensko
-SK,231,03,,Unient Communications
-SK,231,04,T-Mobile,T-Mobile Slovensko
-SK,231,06,O2,Telefónica O2 Slovakia
-SK,231,99,ŽSR,Železnice Slovenskej Republiky
-SI,293,40,Si.mobil,SI.MOBIL d.d.
-SI,293,41,Mobitel,Mobitel D.D.
-SI,293,64,T-2,T-2 d.o.o.
-SI,293,70,Tušmobil,Tušmobil d.o.o.
-SB,540,01,BREEZE,Solomon Telekom Co Ltd
-SO,637,60,Nationlink Telecom,Nationlink Telecom
-SO,637,01,Telesom,Telesom
-SO,637,04,Somafone,Somafone FZLLC
-SO,637,10,Nationlink,NationLink Telecom
-SO,637,25,Hormuud,Hormuud Telecom Somalia Inc
-SO,637,30,Golis,Golis Telecom Somalia
-SO,637,82,Telcom,Telcom Somalia
-ZA,655,01,Vodacom,Vodacom
-ZA,655,02,Telkom Mobile / 8.ta,Telkom
-ZA,655,06,Sentech,
-ZA,655,07,Cell C,Cell C
-ZA,655,10,MTN,MTN Group
-ZA,655,11,,South African Police Service Gauteng
-ZA,655,13,Neotel,
-ZA,655,21,,Cape Town Metropolitan Council
-ZA,655,30,,Bokamoso Consortium
-ZA,655,31,,Karabo Telecoms (Pty) Ltd.
-ZA,655,32,,Ilizwi Telecommunications
-ZA,655,33,,Thinta Thinta Telecommunications
-__,250,30,Megafon,Ostelecom
-ES,214,01,Vodafone,Vodafone Spain
-ES,214,03,Orange,France Telecom España SA
-ES,214,04,Yoigo,Xfera Moviles SA
-ES,214,05,TME,Telefónica Móviles España
-ES,214,06,Vodafone,Vodafone Spain
-ES,214,07,movistar,Telefónica Móviles España
-ES,214,08,Euskaltel,
-ES,214,09,Orange,France Telecom España SA
-ES,214,15,BT,BT Group España Compañia de Servicios Globales de Telecomunicaciones S.A.U.
-ES,214,16,TeleCable,Telecable de Asturias S.A.U.
-ES,214,17,Móbil R,R Cable y Telecomunicaciones Galicia S.A.
-ES,214,18,ONO,Cableuropa S.A.U.
-ES,214,19,Simyo,E-PLUS Moviles Virtuales España S.L.U.
-ES,214,20,Fonyou,Fonyou Telecom S.L.
-ES,214,21,Jazztel,Jazz Telecom S.A.U.
-ES,214,22,DigiMobil,Best Spain Telecom
-ES,214,23,Barablu,Barablu Móvil España
-ES,214,24,Eroski,Eroski Móvil España
-ES,214,25,LycaMobile,LycaMobile S.L.
-LK,413,01,Mobitel,Sri Lanka Telecom Mobitel
-LK,413,02,Dialog,Dialog Axiata
-LK,413,03,Etisalat,Emirates Telecommunication Corporation
-LK,413,05,Airtel,Bharti Airtel
-LK,413,08,Hutch,Hutchison Telecommunications Lanka
-SD,634,01,Zain SD,Zain Group - Sudan
-SD,634,02,MTN,MTN Sudan
-SD,634,05,Vivacell,Wawat Securities
-SD,634,07,Sudani One,Sudatel Group
-SR,746,02,Telesur,Telecommunications Company Suriname (Telesur)
-SR,746,03,Digicel,Digicel Group Limited
-SR,746,04,Uniqa,Intelsur N.V. / UTS N.V.
-SZ,653,10,,Swazi MTN
-SE,240,01,Telia,SwedenTeliaSonera
-SE,240,02,3,Hutchison 3G
-SE,240,03,Ice.net,Nordisk Mobiltelefon
-SE,240,04,,3G Infrastructure Services
-SE,240,05,Sweden 3G,Svenska UMTS-Nät
-SE,240,06,Telenor,Telenor Sweden
-SE,240,07,Tele2,Tele2 Sweden
-SE,240,08,Telenor,Telenor Sweden
-SE,240,09,djuice,Telenor Sweden
-SE,240,10,Spring Mobil,Tele2
-SE,240,11,,Lindholmen Science Park
-SE,240,12,,Barablu Mobile Scandinavia
-SE,240,13,,Ventelo Sverige
-SE,240,14,,TDC Mobil
-SE,240,15,,Wireless Maingate Nordic
-SE,240,16,,42IT
-SE,240,17,Gotanet,Götalandsnätet
-SE,240,20,,Wireless Maingate Message Services
-SE,240,21,MobiSir,Trafikverket (formerly Banverket)
-SE,240,24,Sweden 2G,Net4Mobility
-SE,240,25,,DigiTelMobile
-SE,240,26,,Beepsend
-SE,240,33,,Mobile Arts AB
-CH,228,01,Swisscom,Swisscom Ltd
-CH,228,02,Sunrise,Sunrise Communications AG
-CH,228,03,Orange,Orange Communications SA
-CH,228,05,,Togewanet AG (Comfone)
-CH,228,06,SBB-CFF-FFS,SBB AG
-CH,228,07,IN&Phone,IN&Phone SA
-CH,228,08,Tele2,Tele2 Telecommunications AG
-CH,228,50,,3G Mobile AG
-CH,228,51,,BebbiCell AG
-SY,417,01,Syriatel,Syriatel Mobile Telecom
-SY,417,02,MTN,MTN Syria
-TW,466,01,FarEasTone,Far EasTone Telecommunications Co Ltd
-TW,466,05,APTG,Asia Pacific Telecom
-TW,466,06,Tuntex,Tuntex Telecom
-TW,466,11,Chunghwa LDM,LDTA/Chungwa Telecom
-TW,466,88,KG Telecom,KG Telecom
-TW,466,89,VIBO,VIBO Telecom
-TW,466,92,Chungwa,Chunghwa
-TW,466,93,MobiTai,Mobitai Communications
-TW,466,97,Taiwan Mobile,Taiwan Mobile Co. Ltd
-TW,466,99,TransAsia,TransAsia Telecoms
-TJ,436,01,Tcell,JV Somoncom
-TJ,436,02,Tcell,Indigo Tajikistan
-TJ,436,03,MLT,TT Mobile
-TJ,436,04,Babilon-M,Babilon-Mobile
-TJ,436,05,Beeline,Vimpelcom
-TJ,436,12,Tcell,Indigo
-TZ,640,02,tiGO,MIC Tanzania Limited
-TZ,640,03,Zantel,Zanzibar Telecom Ltd
-TZ,640,04,Vodacom,Vodacom Tanzania Limited
-TZ,640,05,Airtel,Bharti Airtel
-TZ,640,06,Sasatel,Dovetel Limited
-TZ,640,07,TTCL Mobile,Tanzania Telecommunication Company LTD (TTCL)
-TZ,640,08,Benson Online (BOL),Benson Informatics Limited
-TZ,640,09,Hits,ExcellentCom Tanzania Limited
-TZ,640,11,SmileCom,Smile Telecoms Holdings Ltd.
-TH,520,00,my CAT 3G+,CAT Telecom
-TH,520,01,AIS,Advanced Info Service
-TH,520,02,CAT CDMA,CAT Telecom
-TH,520,10,,WCS IQ
-TH,520,15,TOT 3G,Telephone Organization of Thailand (TOT)
-TH,520,18,dtac,Total Access Communication
-TH,520,23,AIS GSM 1800,Digital Phone (AIS)
-TH,520,99,True Move,True Corporation
-TG,615,01,Togo Cell,Togo Telecom
-TG,615,03,Moov,Moov Togo
-TO,539,01,,Tonga Communications Corporation
-TO,539,43,,Shoreline Communication
-TO,539,88,Digicel,
-TT,374,12,bmobile,TSTT
-TT,374,130,Digicel,Digicel (Trinidad & Tobago) Limited
-TN,605,01,Orange,Orange Tunisie
-TN,605,02,Tunicell,Tunisie Telecom
-TN,605,03,Tunisiana,Orascom Telecom Tunisie
-TR,286,01,Turkcell,Turkcell Iletisim Hizmetleri A.S.
-TR,286,02,Vodafone,Vodafone Turkey
-TR,286,03,Avea,
-TR,286,04,,Aycell
-TM,438,01,MTS,Barash Communication Technologies
-TM,438,02,TM-Cell,Altyn Asyr
-TC,376,350,C&W,Cable & Wireless West Indies Ltd (Turks & Caicos)
-TC,376,352,Islandcom,Islandcom Telecommunications
-TC,338,05,Digicel,Digicel (Turks & Caicos) Limited
-TV,553,01,TTC,Tuvalu Telecom
-UG,641,01,Airtel,Bharti Airtel
-UG,641,10,MTN,MTN Uganda
-UG,641,11,UTL,Uganda Telecom Ltd.
-UG,641,14,Orange,Orange Uganda
-UG,641,22,Warid Telecom,Warid Telecom
-UA,255,01,MTS,Ukrainian Mobile Communications
-UA,255,02,Beeline,Ukrainian Radio Systems
-UA,255,03,Kyivstar,Kyivstar GSM JSC
-UA,255,04,IT,Intertelecom
-UA,255,05,Golden Telecom,Golden Telecom
-UA,255,06,life:),Astelit
-UA,255,07,Ukrtelecom,Ukrtelecom
-UA,255,21,PEOPLEnet,Telesystems of Ukraine
-UA,255,23,CDMA Ukraine,ITC
-AE,424,02,Etisalat,E mirates Telecom Corp
-AE,424,03,du,Emirates Integrated Telecommunications Company
-UK,234,00,BT,BT Group
-UK,234,01,Vectone Mobile,Mundio Mobile Limited
-UK,234,02,O2,Telefónica O2 UK Limited
-UK,234,03,Airtel-Vodafone,Jersey Airtel Limited
-UK,234,04,FMS Solutions Ltd,FMS Solutions Ltd
-UK,234,05,,COLT Mobile Telecommunications Limited
-UK,234,06,,Internet Computer Bureau Limited
-UK,234,07,,Cable & Wireless UK
-UK,234,08,,OnePhone (UK) Ltd
-UK,234,09,,Tismi BV
-UK,234,10,O2,Telefónica O2 UK Limited
-UK,234,11,O2,Telefónica Europe
-UK,234,12,Railtrack,Network Rail Infrastructure Ltd
-UK,234,13,Railtrack,Network Rail Infrastructure Ltd
-UK,234,14,Hay Systems Ltd,Hay Systems Ltd
-UK,234,15,Vodafone,Vodafone United Kingdom
-UK,234,16,Talk Talk,TalkTalk Communications Limited
-UK,234,17,,FleXtel Limited
-UK,234,18,Cloud9,Cloud9
-UK,234,19,Private Mobile Networks PMN,Teleware plc
-UK,234,20,Three,Hutchison 3G UK Ltd
-UK,234,22,RoutoMessaging,Routo Telecommunications Limited
-UK,234,24,Greenfone,Stour Marine
-UK,234,25,Truphone,Software Cellular Network Ltd
-UK,234,30,T-Mobile,Everything Everywhere Limited (TM)
-UK,234,31,Virgin,Virgin Mobile
-UK,234,32,Virgin,Virgin Mobile
-UK,234,33,Orange,Everything Everywhere Limited (TM)
-UK,234,34,Orange,Everything Everywhere Limited (TM)
-UK,234,35,,JSC Ingenium (UK) Limited
-UK,234,36,,Cable and Wireless Isle of Man Limited
-UK,234,37,,Synectiv Ltd
-UK,234,50,JT-Wave,Jersey Telecom
-UK,234,55,,Cable & Wireless Guernsey / Sure Mobile (Jersey)
-UK,234,58,,Manx Telecom
-UK,234,76,BT,BT Group
-UK,234,78,Airwave,Airwave (communications network)[citation needed]
-UK,235,00,,Mundio Mobile Limited
-UK,235,01,,Everything Everywhere Limited (TM)
-UK,235,02,,Everything Everywhere Limited (TM)
-UK,235,77,BT,BT Group
-UK,235,91,,Vodafone United Kingdom
-UK,235,92,,Cable & Wireless UK
-UK,235,94,,Hutchison 3G UK Ltd
-UK,235,95,,Network Rail Infrastructure Limited
-US,310,053,,Virgin Mobile US
-US,310,054,,Alltel US
-US,310,066,,U.S. Cellular
-US,310,004,Verizon,Verizon Wireless
-US,310,005,Verizon,Verizon Wireless
-US,310,010,,MCI
-US,310,012,Verizon,Verizon Wireless
-US,310,013,MobileTel,
-US,310,014,,Testing
-US,310,016,,Cricket Communications
-US,310,017,,North Sight Communications Inc.
-US,310,020,,Union Telephone Company
-US,310,026,T-Mobile,
-US,310,030,Centennial,Centennial Communications
-US,310,034,Airpeak,
-US,310,040,Concho,"Concho Cellular Telephone Co., Inc."
-US,310,046,SIMMETRY,TMP Corp
-US,310,060,,Consolidated Telcom
-US,310,070,,Highland Cellular
-US,310,080,Corr,Corr Wireless Communications LLC
-US,310,090,AT&T,AT&T Mobility
-US,310,100,Plateau Wireless,New Mexico RSA 4 East Ltd. Partnership
-US,310,110,PTI Pacifica,PTI Pacifica Inc.
-US,310,120,Sprint,
-US,310,150,AT&T,AT&T Mobility
-US,310,160,,T-Mobile
-US,310,170,,T-Mobile
-US,310,180,West Central,West Central Wireless
-US,310,190,Dutch Harbor,"Alaska Wireless Communications, LLC"
-US,310,200,,T-Mobile
-US,310,210,,T-Mobile
-US,310,220,,T-Mobile
-US,310,230,,T-Mobile
-US,310,240,,T-Mobile
-US,310,250,,T-Mobile
-US,310,260,,T-Mobile
-US,310,270,,T-Mobile
-US,310,280,,T-Mobile
-US,310,290,,T-Mobile
-US,310,300,iSmart Mobile,Smart Call (Truphone)
-US,310,310,,T-Mobile
-US,310,311,,Farmers Wireless
-US,310,320,Cellular One,"Smith Bagley, Inc."
-US,310,330,T-Mobile,
-US,310,340,Westlink,Westlink Communications
-US,310,350,,Carolina Phone
-US,310,380,AT&T,AT&T Mobility
-US,310,390,Cellular One of East Texas,"TX-11 Acquisition, LLC"
-US,310,400,i CAN_GSM,Wave Runner LLC (Guam)
-US,310,410,AT&T,AT&T Mobility
-US,310,420,Cincinnati Bell,Cincinnati Bell Wireless
-US,310,430,,Alaska Digitel
-US,310,440,Cellular One,
-US,310,450,Viaero,Viaero Wireless
-US,310,460,Simmetry,TMP Corporation
-US,310,470,nTelos,
-US,310,480,,Choice Phone
-US,310,490,T-Mobile,
-US,310,500,Alltel,
-US,310,510,Airtel,Airtel Wireless
-US,310,520,VeriSign,
-US,310,530,,West Virginia Wireless
-US,310,540,Oklahoma Western,Oklahoma Western Telephone Company
-US,310,560,AT&T,AT&T Mobility
-US,310,570,Cellular One,"MTPCS, LLC"
-US,310,580,T-Mobile,
-US,310,590,Alltel,Alltel Communications Inc
-US,310,610,Epic Touch,Elkhart Telephone Co.
-US,310,620,Coleman County Telecom,Coleman County Telecommunications
-US,310,630,AmeriLink PCS,Choice Wireless
-US,310,640,Airadigm,Airadigm Communications
-US,310,650,Jasper,"Jasper Wireless, inc"
-US,310,660,T-Mobile,
-US,310,670,Northstar,
-US,310,680,AT&T,AT&T Mobility
-US,310,690,Conestoga,Conestoga Wireless Company
-US,310,730,SeaMobile,
-US,310,740,Convey,Convey Communications Inc.
-US,310,760,Panhandle,Panhandle Telecommunications Systems Inc.
-US,310,770,i wireless,Iowa Wireless Services
-US,310,780,,Airlink PCS
-US,310,790,PinPoint,PinPoint Communications
-US,310,800,,T-Mobile
-US,310,830,Caprock,Caprock Cellular
-US,310,840,telna Mobile,"Telecom North America Mobile, Inc."
-US,310,850,Aeris,"Aeris Communications, Inc."
-US,310,870,PACE,Kaplan Telephone Company
-US,310,880,Advantage,Advantage Cellular Systems
-US,310,890,Unicel,Rural Cellular Corporation
-US,310,900,Mid-Rivers Wireless,Mid-Rivers Communications
-US,310,910,First Cellular,First Cellular of Southern Illinois
-US,310,940,,Iris Wireless LLC
-US,310,950,XIT Wireless,Texas RSA 1 dba XIT Cellular
-US,310,960,Plateau Wireless,
-US,310,970,Globalstar,
-US,310,980,,AT&T Mobility
-US,310,990,,AT&T Mobility
-US,311,000,,Mid-Tex Cellular
-US,311,010,Chariton Valley,Chariton Valley Communications
-US,311,020,,Missouri RSA 5 Partnership
-US,311,030,,Indigo Wireless
-US,311,040,,Commnet Wireless
-US,311,050,,Wikes Cellular
-US,311,060,Farmers Cellular,Farmers Cellular Telephone
-US,311,070,Easterbrooke,Easterbrooke Cellular Corporation
-US,311,080,Pine Cellular,Pine Telephone Company
-US,311,090,Long Lines Wireless,Long Lines Wireless LLC
-US,311,100,,High Plains Wireless
-US,311,110,,High Plains Wireless
-US,311,120,,Choice Phone
-US,311,130,,Cell One Amarillo
-US,311,140,Sprocket,MBO Wireless
-US,311,150,,Wilkes Cellular
-US,311,160,,Endless Mountains Wireless
-US,311,170,PetroCom,Broadpoint Inc
-US,311,180,,Cingular Wireless
-US,311,190,,Cellular Properties
-US,311,210,,Emery Telcom Wireless
-US,311,220,,U.S. Cellular
-US,311,230,,C Spire Wireless
-US,311,330,Bug Tussel Wireless,Bug Tussel Wireless
-US,311,480,Verizon,Verizon Wireless
-US,311,660,metroPCS,metroPCS
-US,316,010,Nextel,Nextel Communications
-US,316,011,,Southern Communications Services
-UY,748,01,Antel,Compania estatal (ANTEL)
-UY,748,07,Movistar,Telefónica Móviles Uruguay
-UY,748,10,Claro UY,AM Wireless Uruguay S.A.
-UZ,434,01,,Buztel
-UZ,434,02,,Uzmacom
-UZ,434,04,Beeline,Unitel LLC
-UZ,434,05,Ucell,Coscom
-UZ,434,06,,Perfectum Mobile
-UZ,434,07,MTS,Uzdunrobita
-VU,541,01,SMILE,Telecom Vanuatu Ltd
-VE,734,01,Digitel,Corporacion Digitel C.A.
-VE,734,02,Digitel,Corporacion Digitel C.A.
-VE,734,03,Digitel,Corporacion Digitel C.A.
-VE,734,04,movistar,Telefónica Móviles Venezuela
-VE,734,06,Movilnet,Telecomunicaciones Movilnet
-VN,452,01,MobiFone,Vietnam Mobile Telecom Services Company (VMS)
-VN,452,02,Vinaphone,Vietnam Telecom Services Company
-VN,452,03,S-Fone,S-Telecom
-VN,452,04,Viettel Mobile,Viettel Telecom
-VN,452,05,Vietnamobile,Hanoi Telecom
-VN,452,06,EVNTelecom,EVNTelecom - EVN
-VN,452,08,3G EVNTelecom,EVNTelecom - EVN
-VN,452,07,Beeline VN,GTEL Mobile JSC
-YE,421,01,SabaFon,
-YE,421,02,MTN,SpaceTel
-YE,421,03,Yemen Mobile,Yemen Mobile
-YE,421,04,HiTS-UNITEL,Y
-ZM,645,01,Airtel,Bharti Airtel
-ZM,645,02,MTN,MTN Group
-ZM,645,03,ZAMTEL,Zambia Telecommunications Company Ltd
-ZW,648,01,Net*One,Net*One Cellular (Pvt) Ltd
-ZW,648,03,Telecel,Telecel Zimbabwe (PVT) Ltd
-ZW,648,04,Econet,Econet Wireless (Private) Limited
-__,901,01,ICO,ICO Satellite Management
-__,901,02,,Sense Communications International
-__,901,03,Iridium,
-__,901,04,Globalstar,
-__,901,05,,Thuraya RMSS Network
-__,901,06,,Thuraya Satellite Telecommunications Company
-__,901,07,Ellipso,
-__,901,08,,
-__,901,09,,Tele1 Europe
-__,901,10,ACeS,
-__,901,11,Inmarsat,
-__,901,12,Telenor,Maritime Communications Partner AS
-__,901,13,GSM.AQ,Global Networks Switzerland Inc.
-__,901,14,,AeroMobile AS
-__,901,15,,OnAir Switzerland Sarl
-__,901,16,,Jasper Systems
-__,901,17,Navitas,
-__,901,18,Cellular @Sea,AT&T Mobility
-__,901,19,,Vodafone Malta Maritime
-__,901,21,Seanet,Seanet Maritime Communications
-__,901,23,,Beeline
-__,901,24,iNum,Voxbone
-__,901,26,TIM,Telecom Italia
-__,901,29,Telenor,
-__,901,32,Sky High,MegaFon
diff --git a/res/wiki_mcc_mnc_oper_list.db b/res/wiki_mcc_mnc_oper_list.db
deleted file mode 100644 (file)
index fefb8b6..0000000
Binary files a/res/wiki_mcc_mnc_oper_list.db and /dev/null differ
diff --git a/res/wiki_mcc_mnc_oper_list.sql b/res/wiki_mcc_mnc_oper_list.sql
deleted file mode 100644 (file)
index fd5493a..0000000
+++ /dev/null
@@ -1,1520 +0,0 @@
-create table mcc_mnc_oper_list (id integer primary key, country char(3), mcc integer, mnc char(3), oper char(45) );
-BEGIN;
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 1, "01", "TEST");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 111, "11", "SDK");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GE", 289, "67", "Aquafon");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GE", 289, "88", "A-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AF", 412, "01", "AWCC");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AF", 412, "20", "Roshan");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AF", 412, "40", "MTN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AF", 412, "50", "Etisalat");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AL", 76, "01", "AMC");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AL", 276, "02", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AL", 276, "03", "Eagle Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AL", 276, "04", "Plus Communication");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DZ", 603, "01", "Mobilis");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DZ", 603, "02", "Djezzy");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DZ", 603, "03", "Nedjma");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AS", 44, "11", "Bluesky");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AD", 213, "03", "Mobiland");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AO", 631, "02", "UNITEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AO", 631, "04", "MOVICEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AI", 365, "010", "Weblinks Limited");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AI", 365, "840", "Cable & Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AG", 344, "030", "APUA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AG", 344, "920", "LIME");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AG", 338, "050", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AR", 722, "010", "Movistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AR", 722, "020", "Nextel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AR", 722, "070", "Movistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AR", 722, "310", "Claro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AR", 722, "320", "Claro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AR", 722, "330", "Claro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AR", 722, "34", "Personal");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AR", 722, "341", "Personal");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AR", 722, "350", "Hutchinson (PORT HABLE)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AR", 722, "36", "Personal");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AM", 283, "01", "Beeline");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AM", 283, "05", "VivaCell-MTS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AM", 283, "10", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AW", 363, "01", "SETAR");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AW", 363, "02", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "01", "Telstra");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "02", "Optus");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "03", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "04", "Department of Defence");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "05", "Ozitel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "06", "3");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "08", "One.Tel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "09", "Airnet");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "12", "3");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "13", "Railcorp");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "14", "AAPT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "15", "3GIS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "16", "Victorian Rail Track");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "21", "SOUL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "24", "Advance Communications Technologies Pty. Ltd.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "38", "Crazy John's");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "71", "Telstra");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "72", "Telstra");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "88", "Localstar Holding Pty. Ltd.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "90", "Optus");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AU", 505, "99", "One.Tel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AT", 232, "01", "A1");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AT", 232, "03", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AT", 232, "05", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AT", 232, "07", "tele.ring");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AT", 232, "09", "A1");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AT", 232, "10", "3");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AT", 232, "11", "bob");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AT", 232, "12", "yesss");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AT", 232, "14", "3");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AT", 232, "15", "Barablu");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AT", 232, "91", "GSM-R A");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AZ", 400, "01", "Azercell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AZ", 400, "02", "Bakcell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AZ", 400, "03", "FONEX");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AZ", 400, "04", "Nar Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BS", 364, "390", "BaTelCo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BH", 426, "01", "Batelco");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BH", 426, "02", "zain BH");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BH", 426, "04", "VIVA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BD", 470, "01", "Grameenphone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BD", 470, "02", "Robi");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BD", 470, "03", "Banglalink");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BD", 470, "04", "TeleTalk");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BD", 470, "05", "Citycell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BD", 470, "06", "Airtel formerly Warid Telcom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BB", 342, "600", "LIME");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BB", 342, "750", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BB", 342, "820", "Sunbeach Communications");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BY", 257, "01", "velcom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BY", 257, "02", "MTS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BY", 257, "03", "DIALLOG");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BY", 257, "04", "life:)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BY", 257, "501", "BelCel JV");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BE", 206, "01", "Proximus");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BE", 206, "05", "Telenet");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BE", 206, "10", "Mobistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BE", 206, "20", "BASE");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BZ", 702, "67", "DigiCell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BZ", 702, "99", "Smart");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BJ", 616, "01", "Libercom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BJ", 616, "02", "Moov");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BJ", 616, "03", "MTN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BJ", 616, "04", "BBCOM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BJ", 616, "05", "Glo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BM", 350, "01", "Digicel Bermuda");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BM", 350, "02", "Mobility");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BM", 338, "050", "Digicel Bermuda");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BM", 310, "59", "Cellular One");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BT", 402, "11", "B-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BT", 402, "77", "TashiCell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BO", 736, "01", "Nuevatel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BO", 736, "02", "Entel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BO", 736, "03", "Tigo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BA", 218, "03", "HT-ERONET");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BA", 218, "05", "m:tel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BA", 218, "90", "BH Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BW", 652, "01", "Mascom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BW", 652, "02", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BW", 652, "04", "BTC Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "00", "Nextel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "02", "TIM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "03", "TIM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "04", "TIM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "05", "Claro BR");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "06", "Vivo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "07", "Sercomtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "10", "Vivo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "11", "Vivo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "15", "CTBC Celular");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "16", "Brasil Telecom GSM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "23", "Vivo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "31", "Oi");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "32", "CTBC Celular");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "33", "CTBC Celular");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "34", "CTBC Celular");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BR", 724, "39", "Nextel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VG", 348, "170", "LIME");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VG", 348, "570", "CCT Boatphone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VG", 348, "770", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BN", 528, "01", "Jabatan Telekom Brunei");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BN", 528, "02", "B-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BN", 528, "11", "DSTCom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BG", 284, "01", "M-Tel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BG", 284, "03", "Vivacom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BG", 284, "04", "Undisclosed");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BG", 284, "05", "GLOBUL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BF", 613, "01", "Telmob");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BF", 613, "02", "Zain");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BF", 613, "03", "Telecel Faso");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BI", 642, "01", "Spacetel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BI", 642, "02", "Africell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BI", 642, "03", "Onatel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BI", 642, "07", "Smart Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BI", 642, "08", "HiTs Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("BI", 642, "82", "U-COM Burundi");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KH", 456, "01", "Mobitel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KH", 456, "02", "hello");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KH", 456, "03", "S Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KH", 456, "04", "qb");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KH", 456, "05", "Star-Cell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KH", 456, "06", "Smart Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KH", 456, "18", "Mfone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KH", 456, "11", "Excell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KH", 456, "09", "Beeline");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KH", 456, "08", "Metfone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CM", 624, "01", "MTN Cameroon");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CM", 624, "02", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "220", "Telus");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "221", "Telus");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "270", "unknown");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "290", "Airtel Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "320", "Mobilicity");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "350", "FIRST");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "360", "MiKe");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "361", "Telus");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "370", "Fido");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "380", "DMTS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "490", "WIND Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "500", "Videotron");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "510", "Videotron");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "610", "Bell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "610", "Bell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "620", "ICE Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "640", "Bell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "652", "BC Tel Mobility (Telus)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "653", "Telus");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "655", "MTS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "656", "TBay");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "657", "Telus");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "660", "MTS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "680", "SaskTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "701", "MB Tel Mobility");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "702", "MT&T Mobility (Aliant)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "703", "New Tel Mobility (Aliant)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "710", "Globalstar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "720", "Rogers Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "780", "SaskTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CA", 302, "880", "Bell / Telus / SaskTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CV", 625, "01", "CVMOVEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CV", 625, "02", "T+");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KY", 346, "140", "LIME");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KY", 346, "50", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CF", 623, "01", "CTP");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CF", 623, "02", "TC");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CF", 623, "03", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CF", 623, "04", "Nationlink");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TD", 622, "01", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TD", 622, "02", "Tchad Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TD", 622, "03", "TIGO - Millicom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TD", 622, "04", "Salam");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CL", 730, "01", "entel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CL", 730, "02", "movistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CL", 730, "03", "Claro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CL", 730, "04", "Nextel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CL", 730, "08", "VTR Móvil");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CL", 730, "09", "Nextel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CL", 730, "10", "entel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CL", 730, "99", "Will");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CN", 460, "00", "China Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CN", 460, "01", "China Unicom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CN", 460, "02", "China Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CN", 460, "03", "China Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CN", 460, "05", "China Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CN", 460, "06", "China Unicom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CN", 460, "07", "China Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CN", 460, "20", "China Tietong");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CO", 732, "001", "Colombia Telecomunicaciones S.A.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CO", 732, "002", "Edatel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CO", 732, "101", "Comcel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CO", 732, "102", "movistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CO", 732, "103", "Tigo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CO", 732, "111", "Tigo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CO", 732, "123", "movistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KM", 654, "01", "HURI - SNPT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CG", 629, "01", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CG", 629, "10", "Libertis Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CG", 629, "07", "Warid Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CK", 548, "01", "Telecom Cook");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CR", 712, "01", "Kolbi ICE");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CR", 712, "02", "Kolbi ICE");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CR", 712, "03", "Claro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CR", 712, "04", "movistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HR", 219, "01", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HR", 219, "02", "Tele2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HR", 219, "10", "Vip");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CU", 368, "01", "CUBACEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CY", 280, "01", "Cytamobile-Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CY", 280, "10", "MTN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CZ", 230, "01", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CZ", 230, "02", "O2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CZ", 230, "03", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CZ", 230, "04", "U:fon");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CZ", 230, "05", "TRAVEL TELEKOMMUNIKATION, s.r.o");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CZ", 230, "06", "OSNO TELECOMUNICATION, s.r.o");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CZ", 230, "98", "Správa železniční dopravní cesty, s.o");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CZ", 230, "99", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CD", 630, "01", "Vodacom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CD", 630, "02", "Zain");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CD", 630, "04", "Cellco");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CD", 630, "05", "Supercell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CD", 630, "10", "Libertis Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CD", 630, "86", "CCT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CD", 630, "89", "SAIT Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DK", 238, "01", "TDC");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DK", 238, "02", "Telenor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DK", 238, "03", "MIGway A/S");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DK", 238, "05", "ApS KBUS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DK", 238, "06", "3");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DK", 238, "07", "Barablu Mobile Ltd.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DK", 238, "09", "Dansk Beredskabskommunikation A/S");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DK", 238, "10", "TDC");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DK", 238, "11", "Dansk Beredskabskommunikation A/S");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DK", 238, "12", "Lycamobile Denmark Ltd");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DK", 238, "20", "Telia");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DK", 238, "30", "Telia");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DK", 238, "40", "Ericsson Danmark A/S");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DK", 238, "77", "Telenor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DJ", 638, "01", "Evatis");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DM", 366, "020", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DM", 366, "110", "Cable & Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DO", 370, "01", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DO", 370, "02", "Claro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DO", 370, "03", "Tricom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DO", 370, "04", "Viva");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TL", 514, "02", "Timor Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("EC", 740, "00", "Movistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("EC", 740, "01", "Claro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("EC", 740, "02", "Alegro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("EG", 602, "01", "Mobinil");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("EG", 602, "02", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("EG", 602, "03", "Etisalat");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SV", 706, "01", "CTE Telecom Personal");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SV", 706, "02", "digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SV", 706, "03", "Tigo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SV", 706, "04", "movistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SV", 706, "11", "Claro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GQ", 627, "01", "Orange GQ");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GQ", 627, "03", "Hits GQ");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ER", 657, "01", "Eritel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("EE", 248, "01", "EMT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("EE", 248, "02", "Elisa");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("EE", 248, "03", "Tele 2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("EE", 248, "04", "OY Top Connect");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("EE", 248, "05", "AS Bravocom Mobiil");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("EE", 248, "06", "Progroup Holding");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ET", 636, "01", "ETH-MTN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FO", 288, "01", "Faroese Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FO", 288, "02", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FJ", 542, "01", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FJ", 542, "02", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FI", 244, "03", "DNA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FI", 244, "05", "Elisa");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FI", 244, "07", "Nokia");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FI", 244, "08", "Unknown");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FI", 244, "10", "TDC Oy");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FI", 244, "11", "VIRVE");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FI", 244, "12", "DNA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FI", 244, "14", "AMT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FI", 244, "15", "SAMK");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FI", 244, "21", "Saunalahti");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FI", 244, "29", "Scnl Truphone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FI", 244, "91", "Sonera");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FR", 208, "00", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FR", 208, "01", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FR", 208, "02", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FR", 208, "05", "Globalstar Europe");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FR", 208, "06", "Globalstar Europe");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FR", 208, "07", "Globalstar Europe");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FR", 208, "10", "SFR");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FR", 208, "11", "SFR");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FR", 208, "13", "SFR");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FR", 208, "14", "Free Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FR", 208, "15", "Free Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FR", 208, "20", "Bouygues");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FR", 208, "21", "Bouygues");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FR", 208, "22", "Transatel Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FR", 208, "88", "Bouygues");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PF", 547, "20", "Vini");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GA", 628, "01", "Libertis");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GA", 628, "02", "Moov");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GA", 628, "03", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GA", 628, "04", "Azur");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GM", 607, "01", "Gamcel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GM", 607, "02", "Africel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GM", 607, "03", "Comium");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GM", 607, "04", "QCell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GE", 282, "01", "Geocell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GE", 282, "02", "MagtiCom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GE", 282, "03", "MagtiCom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GE", 282, "04", "Beeline");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GE", 282, "05", "Silknet");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "01", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "02", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "03", "E-Plus");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "04", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "05", "E-Plus");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "06", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "07", "O2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "08", "O2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "09", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "10", "Arcor AG & Co");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "11", "O2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "12", "Dolphin Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "13", "Mobilcom Multimedia");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "14", "Group 3G UMTS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "15", "Airdata");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "16", "Vistream");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "42", "27C3");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "43", "LYCA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "60", "DB Telematik");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "76", "Siemens AG");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "77", "E-Plus");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "92", "Nash Technologies");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("DE", 262, "901", "Debitel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GH", 620, "01", "MTN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GH", 620, "02", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GH", 620, "03", "tiGO");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GH", 620, "04", "Expresso");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GH", 620, "06", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GI", 266, "01", "GibTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GI", 266, "06", "CTS Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GR", 202, "01", "Cosmote");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GR", 202, "05", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GR", 202, "09", "Wind");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GR", 202, "10", "Wind");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GL", 290, "01", "TELE Greenland A/S");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GD", 352, "030", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GD", 352, "110", "Cable & Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GP", 340, "01", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GP", 340, "02", "Outremer");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GP", 340, "03", "Telcell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GP", 340, "08", "Dauphin");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GP", 340, "20", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GU", 310, "032", "IT&E Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GU", 310, "033", "Guam Telephone Authority");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GU", 310, "140", "mPulse");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GU", 310, "370", "docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GU", 311, "250", "i CAN_GSM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GU", 310, "470", "docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GT", 704, "01", "Claro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GT", 704, "02", "Comcel / Tigo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GT", 704, "03", "movistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GB", 234, "55", "Sure Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GB", 234, "50", "Wave Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GB", 234, "03", "Airtel Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GN", 611, "01", "Orange S.A.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GN", 611, "02", "Sotelgui");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GN", 611, "03", "Telecel Guinee");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GN", 611, "04", "MTN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GN", 611, "05", "Cellcom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GW", 632, "02", "Areeba");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GW", 632, "03", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GY", 738, "01", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("GY", 738, "02", "GT&T Cellink Plus");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HT", 372, "01", "Voila");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HT", 372, "02", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HT", 372, "03", "NATCOM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HN", 708, "01", "Claro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HN", 708, "02", "Tigo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HN", 708, "30", "Hondutel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HN", 708, "40", "DIGICEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "00", "1O1O / One2Free");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "01", "CITIC Telecom 1616");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "02", "CSL Limited");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "03", "3 (3G)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "04", "3 (2G)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "05", "3 (CDMA)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "06", "SmarTone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "07", "China Unicom (Hong Kong) Limited");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "08", "Trident Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "09", "China Motion Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "10", "New World Mobility");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "11", "China-Hong Kong Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "12", "CMCC HK");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "14", "Hutchison Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "15", "SmarTone Mobile Communications Limited");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "16", "PCCW Mobile (2G)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "17", "SmarTone Mobile Communications Limited");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "18", "CSL Limited");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "19", "PCCW Mobile (3G)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HK", 454, "29", "PCCW Mobile (CDMA)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HU", 216, "01", "Telenor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HU", 216, "30", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("HU", 216, "70", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IS", 274, "01", "Síminn");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IS", 274, "02", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IS", 274, "03", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IS", 274, "04", "Viking");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IS", 274, "06", "Núll níu ehf");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IS", 274, "07", "IceCell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IS", 274, "08", "On-waves");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IS", 274, "11", "Nova");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IS", 274, "12", "Tal");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "01", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "02", "AirTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "03", "AirTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "04", "IDEA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "05", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "07", "IDEA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "09", "Reliance");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "10", "AirTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "11", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "12", "IDEA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "13", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "14", "IDEA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "15", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "17", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "19", "IDEA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "20", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "21", "Loop Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "22", "IDEA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "24", "IDEA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "25", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "27", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "28", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "29", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "30", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "31", "AirTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "34", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "36", "Reliance");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "37", "Aircel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "38", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "41", "Aircel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "42", "Aircel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "44", "IDEA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "45", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "46", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "48", "Dishnet Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "49", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "51", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "52", "Reliance");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "53", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "54", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "55", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "71", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "56", "IDEA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "57", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "58", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "59", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "60", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "62", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "64", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "66", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "67", "Reliance GSM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "68", "DOLPHIN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "69", "DOLPHIN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "72", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "74", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "76", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "78", "Idea Cellular Ltd");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "80", "BSNL MOBILE");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "81", "CellOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "82", "Idea");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "83", "Reliance Smart GSM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "84", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "85", "Reliance");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "86", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "87", "Idea");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "88", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "89", "Idea");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "90", "AirTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "91", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "92", "AirTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "93", "AirTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "96", "AirTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "01", "Reliance");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "03", "Reliance");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "04", "Reliance");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "05", "Reliance");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "09", "Reliance");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "10", "Reliance");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "13", "Reliance");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "025", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "026", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "027", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "029", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "030", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "031", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "032", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "033", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "034", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "035", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "036", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "037", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "038", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "039", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "041", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "042", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "043", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "044", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "045", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "046", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "047", "TATA Teleservice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "51", "AirTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "52", "AirTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "54", "AirTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "55", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "56", "AirTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "66", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "70", "IDEA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "750", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "751", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "752", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "753", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "754", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "755", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "756", "Vodafone IN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "799", "IDEA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "800", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "801", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "802", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "803", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "804", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "805", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "806", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "807", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "808", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "809", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "810", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "811", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "812", "AIRCEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "819", "Uninor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "818", "Uninor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "820", "Uninor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "821", "Uninor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "822", "Uninor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "824", "Videocon Datacom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "827", "Videocon Datacom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "834", "Videocon Datacom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "844", "Uninor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "845", "IDEA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "86", "IDEA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "848", "IDEA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "850", "IDEA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "855", "Loop Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "864", "Loop Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "865", "Loop Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "875", "Uninor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "880", "Uninor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "881", "S Tel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "912", "Etisalat DB(cheers)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "913", "Etisalat DB(cheers)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "914", "Etisalat DB(cheers)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "917", "Etisalat DB(cheers)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 404, "927", "Uninor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IN", 405, "929", "Uninor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ID", 510, "00", "PSN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ID", 510, "01", "INDOSAT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ID", 510, "03", "StarOne");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ID", 510, "07", "TelkomFlexi");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ID", 510, "08", "AXIS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ID", 510, "09", "SMART");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ID", 510, "10", "Telkomsel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ID", 510, "11", "XL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ID", 510, "20", "TELKOMMobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ID", 510, "21", "IM3");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ID", 510, "27", "Ceria");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ID", 510, "28", "Fren/Hepi");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ID", 510, "89", "3");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ID", 510, "99", "Esia");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IR", 432, "11", "IR-MCI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IR", 432, "14", "TKC");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IR", 432, "19", "MTCE");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IR", 432, "32", "Taliya");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IR", 432, "35", "Irancell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IR", 432, "70", "TCI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IR", 432, "93", "Iraphone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IQ", 418, "05", "Asia Cell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IQ", 418, "08", "SanaTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IQ", 418, "20", "Zain");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IQ", 418, "30", "Zain");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IQ", 418, "40", "Korek");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IQ", 418, "45", "Mobitel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IQ", 418, "92", "Omnnea");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IE", 272, "01", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IE", 272, "02", "O2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IE", 272, "03", "Meteor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IE", 272, "04", "Access Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IE", 272, "05", "3");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IE", 272, "07", "Eircom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IE", 272, "09", "Clever Communications");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IE", 272, "11", "Liffey Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IM", 234, "58", "Pronto GSM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IM", 234, "09", "Sure Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IL", 425, "01", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IL", 425, "02", "Cellcom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IL", 425, "03", "Pelephone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IL", 425, "77", "Mirs");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IT", 222, "01", "TIM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IT", 222, "02", "Elsacom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IT", 222, "07", "Noverca");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IT", 222, "10", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IT", 222, "30", "RFI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IT", 222, "77", "IPSE 2000");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IT", 222, "88", "Wind");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IT", 222, "98", "Blu");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("IT", 222, "99", "3 Italia");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CI", 612, "01", "Cora de Comstar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CI", 612, "02", "Moov");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CI", 612, "03", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CI", 612, "04", "KoZ");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CI", 612, "05", "MTN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CI", 612, "06", "ORICEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JM", 338, "020", "LIME");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JM", 338, "050", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JM", 338, "070", "Claro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JM", 338, "180", "LIME");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "00", "eMobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "01", "NTT docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "02", "NTT docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "03", "NTT docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "04", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "06", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "07", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "08", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "09", "NTT docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "10", "NTT docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "11", "NTT docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "12", "NTT docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "13", "NTT docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "14", "NTT docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "15", "NTT docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "16", "NTT docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "17", "NTT docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "18", "NTT docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "19", "NTT docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "20", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "21", "NTT docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "22", "NTT docomo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "23", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "24", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "25", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "26", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "27", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "28", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "29", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "30", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "31", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "32", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "33", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "34", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "35", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "36", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "37", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "38", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "39", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "40", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "41", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "42", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "43", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "44", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "45", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "46", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "47", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "48", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "49", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "50", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "51", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "52", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "53", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "54", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "55", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "56", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "58", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "60", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "61", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "62", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "63", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "64", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "65", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "66", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "67", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "68", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "69", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "70", "au");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "71", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "72", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "73", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "74", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "75", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "76", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "77", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "78", "Okinawa Cellular Telephone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "79", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "80", "TU-KA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "81", "TU-KA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "82", "TU-KA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "83", "TU-KA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "84", "TU-KA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "85", "TU-KA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "86", "TU-KA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "87", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "88", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "89", "KDDI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "90", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "92", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "93", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "94", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "95", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "96", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "97", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "98", "SoftBank");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JP", 440, "99", "DoCoMo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JE", 234, "50", "JT-Wave");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JE", 234, "55", "Sure Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JE", 234, "03", "Airtel Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JO", 416, "01", "zain JO");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JO", 416, "02", "XPress Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JO", 416, "03", "Umniah");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("JO", 416, "77", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KZ", 401, "01", "Beeline");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KZ", 401, "02", "Kcell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KZ", 401, "07", "Dalacom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KZ", 401, "08", "Kazakhtelecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KZ", 401, "77", "Mobile Telecom Service");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KE", 639, "02", "Safaricom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KE", 639, "03", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KE", 639, "07", "Orange Kenya");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KE", 639, "05", "yu");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KI", 545, "09", "Kiribati Frigate");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KP", 467, "192", "Koryolink");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KP", 467, "193", "SunNet");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KR", 450, "02", "KT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KR", 450, "03", "Power 017");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KR", 450, "04", "KT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KR", 450, "05", "SKT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KR", 450, "06", "LGU+");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KR", 450, "08", "olleh");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RKS", 212, "01", "Vala");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RKS", 293, "41", "IPKO");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RKS", 212, "01", "Z Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KW", 419, "02", "zain KW");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KW", 419, "03", "Wataniya");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KW", 419, "04", "Viva");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KG", 437, "01", "Beeline");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KG", 437, "03", "Fonex");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KG", 437, "05", "MegaCom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("KG", 437, "09", "O!");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LA", 457, "01", "LaoTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LA", 457, "02", "ETL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LA", 457, "03", "Unitel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LA", 457, "08", "Tigo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LV", 247, "01", "LMT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LV", 247, "02", "Tele2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LV", 247, "03", "TRIATEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LV", 247, "05", "Bite");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LV", 247, "06", "Rigatta");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LV", 247, "07", "MTS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LV", 247, "08", "IZZI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LV", 247, "09", "Camel Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LB", 415, "01", "Alfa");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LB", 415, "03", "mtc touch");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LB", 415, "05", "Ogero Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LS", 651, "01", "Vodacom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LS", 651, "02", "Econet Ezin-cel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LR", 618, "01", "Lonestar Cell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LR", 618, "02", "Libercell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LR", 618, "04", "Comium");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LR", 618, "07", "Cellcom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LR", 618, "20", "LIBTELCO");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LY", 606, "00", "Libyana");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LY", 606, "01", "Madar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LY", 606, "02", "Al-Jeel Phone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LY", 606, "03", "Libya Phone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LY", 606, "06", "Hatef Libya");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LI", 295, "01", "Swisscom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LI", 295, "02", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LI", 295, "05", "FL1");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LI", 295, "77", "Alpmobil");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LI", 295, "04", "Cubic Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LT", 246, "01", "Omnitel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LT", 246, "02", "BITE");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LT", 246, "03", "Tele 2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LT", 246, "05", "LitRail");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LT", 246, "06", "Mediafon");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LU", 270, "01", "LuxGSM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LU", 270, "77", "Tango");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LU", 270, "99", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MO", 455, "00", "SmarTone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MO", 455, "01", "CTM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MO", 455, "02", "China Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MO", 455, "03", "3");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MO", 455, "04", "CTM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MO", 455, "05", "3");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MK", 294, "01", "T-Mobile MK");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MK", 294, "02", "ONE");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MK", 294, "03", "Vip MK");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MG", 646, "01", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MG", 646, "02", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MG", 646, "03", "Sacel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MG", 646, "04", "Telma");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MW", 650, "01", "TNM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MW", 650, "10", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MY", 502, "01", "ATUR 450");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MY", 502, "10", "DiGi Telecommunications");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MY", 502, "11", "TM Homeline");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MY", 502, "12", "Maxis");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MY", 502, "13", "Celcom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MY", 502, "14", "Telekom Malaysia Berhad for PSTN SMS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MY", 502, "16", "DiGi");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MY", 502, "17", "Hotlink");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MY", 502, "18", "U Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MY", 502, "18", "TM Homeline");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MY", 502, "19", "Celcom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MY", 502, "20", "Electcoms Wireless Sdn Bhd");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MY", 502, "150", "Tune Talk");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MY", 502, "151", "Baraka Telecom Sdn Bhd (MVNE)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MY", 502, "152", "Yes");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MV", 472, "01", "Dhiraagu");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MV", 472, "02", "Wataniya");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ML", 610, "01", "Malitel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ML", 610, "02", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MT", 278, "01", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MT", 278, "21", "GO");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MT", 278, "77", "Melita");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MQ", 340, "01", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MQ", 340, "02", "Outremer");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MQ", 340, "20", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MR", 609, "01", "Mattel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MR", 609, "02", "Chinguitel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MR", 609, "10", "Mauritel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MU", 617, "01", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MU", 617, "02", "MTML");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MU", 617, "10", "Emtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MX", 334, "010", "Nextel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MX", 334, "020", "Telcel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MX", 334, "030", "movistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MX", 334, "040", "Iusacell / Unefon");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MX", 334, "050", "Iusacell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("FM", 550, "01", "FSM EMMANUEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MD", 259, "01", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MD", 259, "02", "Moldcell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MD", 259, "03", "IDC");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MD", 259, "03", "Unité");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MD", 259, "04", "Eventis");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MD", 259, "05", "Unité");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MD", 259, "99", "Unité");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MC", 212, "01", "Office des Telephones");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MN", 428, "99", "MobiCom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MN", 428, "88", "Unitel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MN", 428, "91", "Skytel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MN", 428, "98", "G.Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ME", 297, "01", "Telenor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ME", 297, "02", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ME", 297, "03", "m:tel CG");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ME", 297, "04", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MA", 604, "00", "Méditel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MA", 604, "01", "IAM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MA", 604, "05", "INWI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MZ", 643, "01", "mCel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MZ", 643, "04", "Vodacom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("MM", 414, "01", "MPT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NA", 649, "01", "MTC");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NA", 649, "02", "switch");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NA", 649, "03", "Leo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NR", 536, "02", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NP", 429, "01", "Namaste / NT Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NP", 429, "02", "Ncell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NP", 429, "04", "SmartCell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NP", 429, "03", "Sky/C-Phone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "01", "VastMobiel B.V.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "02", "Tele2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "03", "Voiceworks B.V.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "04", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "05", "Elephant Talk Communications Premium Rate Services");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "06", "Mundio Mobile (Netherlands) Ltd");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "07", "Teleena (MVNE)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "08", "KPN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "09", "Lycamobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "10", "KPN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "12", "Telfort");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "13", "Unica Installatietechniek B.V.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "14", "6Gmobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "15", "Ziggo B.V.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "16", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "17", "Intercity Mobile Communications B.V.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "18", "UPC Nederland B.V.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "19", "Mixe Communication Solutions B.V.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "20", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "21", "ProRail B.V.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "22", "Ministerie van Defensie");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "23", "ASPIDER Solutions Nederland B.V.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "24", "Private Mobility Nederland B.V.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "25", "CapX B.V.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "26", "SpeakUp B.V.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "27", "Breezz Nederland B.V.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "67", "RadioAccess B.V.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "68", "Unify Group Holding B.V.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NL", 204, "69", "KPN Mobile The Netherlands B.V.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AN", 362, "51", "Telcell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AN", 362, "69", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AN", 362, "91", "UTS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AN", 362, "95", "MIO");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AN", 362, "94", "Bayòs");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NC", 546, "01", "Mobilis");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NZ", 530, "00", "Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NZ", 530, "01", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NZ", 530, "02", "Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NZ", 530, "03", "Woosh");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NZ", 530, "04", "TelstraClear");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NZ", 530, "05", "XT Mobile Network");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NZ", 530, "24", "2degrees");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NI", 710, "21", "Claro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NI", 710, "30", "movistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NI", 710, "73", "SERCOM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NE", 614, "01", "SahelCom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NE", 614, "02", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NE", 614, "03", "Telecel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NE", 614, "04", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NG", 621, "20", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NG", 621, "30", "MTN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NG", 621, "40", "M-Tel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NG", 621, "50", "Glo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NG", 621, "60", "Etisalat");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NG", 621, "25", "Visafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NU", 555, "01", "Telecom Niue");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NF", 505, "10", "Norfolk Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NO", 242, "01", "Telenor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NO", 242, "02", "NetCom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NO", 242, "03", "Teletopia");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NO", 242, "04", "Tele2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NO", 242, "05", "Network Norway");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NO", 242, "06", "Ice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NO", 242, "07", "Ventelo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NO", 242, "08", "TDC");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NO", 242, "09", "Com4");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NO", 242, "11", "SystemNet");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NO", 242, "20", "Jernbaneverket AS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("NO", 242, "23", "Lyca");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("OM", 422, "02", "Oman Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("OM", 422, "03", "Nawras");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PK", 410, "01", "Mobilink");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PK", 410, "03", "Ufone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PK", 410, "04", "Zong");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PK", 410, "06", "Telenor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PK", 410, "07", "Warid");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PW", 552, "01", "PNCC");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PW", 552, "80", "Palau Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PS", 425, "05", "Jawwal");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PS", 425, "06", "Wataniya");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PA", 714, "01", "Cable & Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PA", 714, "02", "movistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PA", 714, "04", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PA", 714, "03", "Claro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PG", 537, "01", "B-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PG", 537, "03", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PY", 744, "01", "VOX");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PY", 744, "02", "Claro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PY", 744, "04", "Tigo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PY", 744, "05", "Personal");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PY", 744, "06", "Copaco");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PE", 716, "06", "Movistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PE", 716, "07", "NEXTEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PE", 716, "10", "Claro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PH", 515, "01", "Islacom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PH", 515, "02", "Globe");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PH", 515, "03", "Smart");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PH", 515, "05", "Sun");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PH", 515, "11", "PLDT via ACeS Philippines");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PH", 515, "18", "Cure");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PH", 515, "88", "Nextel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PL", 260, "01", "Plus");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PL", 260, "02", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PL", 260, "03", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PL", 260, "04", "not in use");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PL", 260, "05", "Polska Telefonia Komórkowa Centertel Sp. z o.o.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PL", 260, "06", "Play");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PL", 260, "07", "Netia");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PL", 260, "08", "E-Telko Sp. z o.o.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PL", 260, "09", "Telekomunikacja Kolejowa Sp. z o.o.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PL", 260, "10", "Sferia");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PL", 260, "11", "Nordisk Polska");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PL", 260, "12", "Cyfrowy Polsat");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PL", 260, "15", "CenterNet");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PL", 260, "16", "Mobyland");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PL", 260, "17", "Aero2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PT", 268, "01", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PT", 268, "03", "Optimus");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PT", 268, "06", "TMN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PT", 268, "21", "Zapp");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PR", 330, "110", "Claro");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PR", 330, "00", "Open Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("QA", 427, "01", "Qtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("QA", 427, "02", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("QA", 427, "05", "Ministry of Interior");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RE", 647, "00", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RE", 647, "02", "Outremer");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RE", 647, "10", "SFR Reunion");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RO", 226, "01", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RO", 226, "02", "Romtelecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RO", 226, "03", "Cosmote");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RO", 226, "04", "Cosmote");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RO", 226, "05", "Digi.Mobil");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RO", 226, "06", "Cosmote");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RO", 226, "10", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RO", 226, "11", "Enigma-System");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "01", "MTS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "02", "MegaFon");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "03", "NCC");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "04", "Sibchallenge");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "05", "ETK");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "06", "Skylink [10]");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "07", "SMARTS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "09", "Skylink");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "10", "DTC");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "11", "Orensot");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "12", "Baykalwestcom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "12", "Akos");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "13", "KUGSM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "15", "SMARTS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "16", "NTC");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "17", "Utel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "19", "INDIGO");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "20", "Tele2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "23", "Mobicom - Novosibirsk");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "28", "Beeline");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "35", "MOTIV");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "38", "Tambov GSM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "39", "Utel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "44", "Stavtelesot / North Caucasian GSM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "92", "Primtelefon");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "93", "Telecom XXI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RU", 250, "99", "Beeline");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RW", 635, "10", "MTN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RW", 635, "12", "Rwandatel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RW", 635, "13", "Tigo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SKN", 356, "050", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SKN", 356, "110", "LIME");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SKN", 356, "070", "Chippie");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LC", 358, "050", "Digicel[citation needed]");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LC", 358, "110", "Cable & Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("PM", 308, "01", "Ameris");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VC", 360, "070", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VC", 360, "100", "Cingular Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VC", 360, "110", "Cable & Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("WS", 549, "01", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("WS", 549, "27", "SamoaTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SM", 292, "01", "PRIMA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ST", 626, "01", "CSTmovel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SA", 420, "01", "Al Jawal");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SA", 420, "03", "Mobily");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SA", 420, "04", "Zain SA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SN", 608, "01", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SN", 608, "02", "Tigo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SN", 608, "03", "Expresso");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RS", 220, "01", "Telenor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RS", 220, "02", "Telenor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RS", 220, "03", "mt:s");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("RS", 220, "05", "VIP");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SC", 633, "01", "Cable & Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SC", 633, "02", "Mediatech International");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SC", 633, "10", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SL", 619, "01", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SL", 619, "02", "Tigo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SL", 619, "03", "Africell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SL", 619, "04", "Comium");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SL", 619, "05", "Africell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SL", 619, "25", "Mobitel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SG", 525, "01", "SingTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SG", 525, "02", "SingTel-G18");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SG", 525, "03", "M1");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SG", 525, "05", "StarHub");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SG", 525, "12", "Digital Trunked Radio Network");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SK", 231, "01", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SK", 231, "02", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SK", 231, "03", "Unient Communications");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SK", 231, "04", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SK", 231, "06", "O2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SK", 231, "99", "ŽSR");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SI", 293, "40", "Si.mobil");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SI", 293, "41", "Mobitel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SI", 293, "64", "T-2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SI", 293, "70", "Tušmobil");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SB", 540, "01", "BREEZE");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SO", 637, "60", "Nationlink Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SO", 637, "01", "Telesom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SO", 637, "04", "Somafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SO", 637, "10", "Nationlink");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SO", 637, "25", "Hormuud");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SO", 637, "30", "Golis");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SO", 637, "82", "Telcom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZA", 655, "01", "Vodacom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZA", 655, "02", "Telkom Mobile / 8.ta");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZA", 655, "06", "Sentech");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZA", 655, "07", "Cell C");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZA", 655, "10", "MTN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZA", 655, "11", "South African Police Service Gauteng");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZA", 655, "13", "Neotel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZA", 655, "21", "Cape Town Metropolitan Council");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZA", 655, "30", "Bokamoso Consortium");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZA", 655, "31", "Karabo Telecoms (Pty) Ltd.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZA", 655, "32", "Ilizwi Telecommunications");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZA", 655, "33", "Thinta Thinta Telecommunications");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 250, "30", "Megafon");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "01", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "03", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "04", "Yoigo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "05", "TME");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "06", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "07", "movistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "08", "Euskaltel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "09", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "15", "BT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "16", "TeleCable");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "17", "Móbil R");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "18", "ONO");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "19", "Simyo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "20", "Fonyou");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "21", "Jazztel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "22", "DigiMobil");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "23", "Barablu");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "24", "Eroski");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ES", 214, "25", "LycaMobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LK", 413, "01", "Mobitel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LK", 413, "02", "Dialog");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LK", 413, "03", "Etisalat");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LK", 413, "05", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("LK", 413, "08", "Hutch");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SD", 634, "01", "Zain SD");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SD", 634, "02", "MTN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SD", 634, "05", "Vivacell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SD", 634, "07", "Sudani One");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SR", 746, "02", "Telesur");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SR", 746, "03", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SR", 746, "04", "Uniqa");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SZ", 653, "10", "Swazi MTN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "01", "Telia");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "02", "3");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "03", "Ice.net");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "04", "3G Infrastructure Services");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "05", "Sweden 3G");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "06", "Telenor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "07", "Tele2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "08", "Telenor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "09", "djuice");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "10", "Spring Mobil");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "11", "Lindholmen Science Park");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "12", "Barablu Mobile Scandinavia");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "13", "Ventelo Sverige");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "14", "TDC Mobil");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "15", "Wireless Maingate Nordic");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "16", "42IT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "17", "Gotanet");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "20", "Wireless Maingate Message Services");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "21", "MobiSir");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "24", "Sweden 2G");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "25", "DigiTelMobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "26", "Beepsend");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SE", 240, "33", "Mobile Arts AB");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CH", 228, "01", "Swisscom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CH", 228, "02", "Sunrise");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CH", 228, "03", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CH", 228, "05", "Togewanet AG (Comfone)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CH", 228, "06", "SBB-CFF-FFS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CH", 228, "07", "IN&Phone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CH", 228, "08", "Tele2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CH", 228, "50", "3G Mobile AG");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("CH", 228, "51", "BebbiCell AG");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SY", 417, "01", "Syriatel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("SY", 417, "02", "MTN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TW", 466, "01", "FarEasTone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TW", 466, "05", "APTG");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TW", 466, "06", "Tuntex");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TW", 466, "11", "Chunghwa LDM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TW", 466, "88", "KG Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TW", 466, "89", "VIBO");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TW", 466, "92", "Chungwa");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TW", 466, "93", "MobiTai");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TW", 466, "97", "Taiwan Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TW", 466, "99", "TransAsia");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TJ", 436, "01", "Tcell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TJ", 436, "02", "Tcell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TJ", 436, "03", "MLT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TJ", 436, "04", "Babilon-M");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TJ", 436, "05", "Beeline");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TJ", 436, "12", "Tcell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TZ", 640, "02", "tiGO");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TZ", 640, "03", "Zantel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TZ", 640, "04", "Vodacom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TZ", 640, "05", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TZ", 640, "06", "Sasatel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TZ", 640, "07", "TTCL Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TZ", 640, "08", "Benson Online (BOL)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TZ", 640, "09", "Hits");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TZ", 640, "11", "SmileCom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TH", 520, "00", "my CAT 3G+");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TH", 520, "01", "AIS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TH", 520, "02", "CAT CDMA");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TH", 520, "10", "WCS IQ");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TH", 520, "15", "TOT 3G");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TH", 520, "18", "dtac");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TH", 520, "23", "AIS GSM 1800");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TH", 520, "99", "True Move");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TG", 615, "01", "Togo Cell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TG", 615, "03", "Moov");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TO", 539, "01", "Tonga Communications Corporation");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TO", 539, "43", "Shoreline Communication");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TO", 539, "88", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TT", 374, "12", "bmobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TT", 374, "130", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TN", 605, "01", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TN", 605, "02", "Tunicell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TN", 605, "03", "Tunisiana");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TR", 286, "01", "Turkcell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TR", 286, "02", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TR", 286, "03", "Avea");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TR", 286, "04", "Aycell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TM", 438, "01", "MTS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TM", 438, "02", "TM-Cell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TC", 376, "350", "C&W");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TC", 376, "352", "Islandcom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TC", 338, "05", "Digicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("TV", 553, "01", "TTC");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UG", 641, "01", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UG", 641, "10", "MTN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UG", 641, "11", "UTL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UG", 641, "14", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UG", 641, "22", "Warid Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UA", 255, "01", "MTS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UA", 255, "02", "Beeline");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UA", 255, "03", "Kyivstar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UA", 255, "04", "IT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UA", 255, "05", "Golden Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UA", 255, "06", "life:)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UA", 255, "07", "Ukrtelecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UA", 255, "21", "PEOPLEnet");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UA", 255, "23", "CDMA Ukraine");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AE", 424, "02", "Etisalat");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("AE", 424, "03", "du");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "00", "BT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "01", "Vectone Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "02", "O2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "03", "Airtel-Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "04", "FMS Solutions Ltd");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "05", "COLT Mobile Telecommunications Limited");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "06", "Internet Computer Bureau Limited");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "07", "Cable & Wireless UK");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "08", "OnePhone (UK) Ltd");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "09", "Tismi BV");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "10", "O2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "11", "O2");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "12", "Railtrack");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "13", "Railtrack");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "14", "Hay Systems Ltd");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "15", "Vodafone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "16", "Talk Talk");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "17", "FleXtel Limited");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "18", "Cloud9");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "19", "Private Mobile Networks PMN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "20", "Three");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "22", "RoutoMessaging");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "24", "Greenfone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "25", "Truphone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "30", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "31", "Virgin");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "32", "Virgin");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "33", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "34", "Orange");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "35", "JSC Ingenium (UK) Limited");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "36", "Cable and Wireless Isle of Man Limited");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "37", "Synectiv Ltd");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "50", "JT-Wave");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "55", "Cable & Wireless Guernsey / Sure Mobile (Jersey)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "58", "Manx Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "76", "BT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 234, "78", "Airwave");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 235, "00", "Mundio Mobile Limited");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 235, "01", "Everything Everywhere Limited (TM)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 235, "02", "Everything Everywhere Limited (TM)");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 235, "77", "BT");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 235, "91", "Vodafone United Kingdom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 235, "92", "Cable & Wireless UK");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 235, "94", "Hutchison 3G UK Ltd");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UK", 235, "95", "Network Rail Infrastructure Limited");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "053", "Virgin Mobile US");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "054", "Alltel US");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "066", "U.S. Cellular");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "004", "Verizon");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "005", "Verizon");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "010", "MCI");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "012", "Verizon");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "013", "MobileTel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "014", "Testing");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "016", "Cricket Communications");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "017", "North Sight Communications Inc.");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "020", "Union Telephone Company");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "026", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "030", "Centennial");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "034", "Airpeak");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "040", "Concho");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "046", "SIMMETRY");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "060", "Consolidated Telcom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "070", "Highland Cellular");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "080", "Corr");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "090", "AT&T");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "100", "Plateau Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "110", "PTI Pacifica");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "120", "Sprint");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "150", "AT&T");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "160", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "170", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "180", "West Central");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "190", "Dutch Harbor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "200", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "210", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "220", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "230", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "240", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "250", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "260", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "270", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "280", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "290", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "300", "iSmart Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "310", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "311", "Farmers Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "320", "Cellular One");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "330", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "340", "Westlink");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "350", "Carolina Phone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "380", "AT&T");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "390", "Cellular One of East Texas");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "400", "i CAN_GSM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "410", "AT&T");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "420", "Cincinnati Bell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "430", "Alaska Digitel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "440", "Cellular One");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "450", "Viaero");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "460", "Simmetry");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "470", "nTelos");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "480", "Choice Phone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "490", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "500", "Alltel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "510", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "520", "VeriSign");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "530", "West Virginia Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "540", "Oklahoma Western");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "560", "AT&T");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "570", "Cellular One");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "580", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "590", "Alltel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "610", "Epic Touch");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "620", "Coleman County Telecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "630", "AmeriLink PCS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "640", "Airadigm");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "650", "Jasper");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "660", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "670", "Northstar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "680", "AT&T");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "690", "Conestoga");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "730", "SeaMobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "740", "Convey");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "760", "Panhandle");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "770", "i wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "780", "Airlink PCS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "790", "PinPoint");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "800", "T-Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "830", "Caprock");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "840", "telna Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "850", "Aeris");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "870", "PACE");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "880", "Advantage");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "890", "Unicel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "900", "Mid-Rivers Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "910", "First Cellular");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "940", "Iris Wireless LLC");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "950", "XIT Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "960", "Plateau Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "970", "Globalstar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "980", "AT&T Mobility");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 310, "990", "AT&T Mobility");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "000", "Mid-Tex Cellular");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "010", "Chariton Valley");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "020", "Missouri RSA 5 Partnership");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "030", "Indigo Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "040", "Commnet Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "050", "Wikes Cellular");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "060", "Farmers Cellular");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "070", "Easterbrooke");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "080", "Pine Cellular");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "090", "Long Lines Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "100", "High Plains Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "110", "High Plains Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "120", "Choice Phone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "130", "Cell One Amarillo");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "140", "Sprocket");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "150", "Wilkes Cellular");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "160", "Endless Mountains Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "170", "PetroCom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "180", "Cingular Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "190", "Cellular Properties");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "210", "Emery Telcom Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "220", "U.S. Cellular");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "230", "C Spire Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "330", "Bug Tussel Wireless");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "480", "Verizon");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 311, "660", "metroPCS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 316, "010", "Nextel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("US", 316, "011", "Southern Communications Services");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UY", 748, "01", "Antel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UY", 748, "07", "Movistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UY", 748, "10", "Claro UY");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UZ", 434, "01", "Buztel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UZ", 434, "02", "Uzmacom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UZ", 434, "04", "Beeline");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UZ", 434, "05", "Ucell");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UZ", 434, "06", "Perfectum Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("UZ", 434, "07", "MTS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VU", 541, "01", "SMILE");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VE", 734, "01", "Digitel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VE", 734, "02", "Digitel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VE", 734, "03", "Digitel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VE", 734, "04", "movistar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VE", 734, "06", "Movilnet");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VN", 452, "01", "MobiFone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VN", 452, "02", "Vinaphone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VN", 452, "03", "S-Fone");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VN", 452, "04", "Viettel Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VN", 452, "05", "Vietnamobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VN", 452, "06", "EVNTelecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VN", 452, "08", "3G EVNTelecom");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("VN", 452, "07", "Beeline VN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("YE", 421, "01", "SabaFon");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("YE", 421, "02", "MTN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("YE", 421, "03", "Yemen Mobile");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("YE", 421, "04", "HiTS-UNITEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZM", 645, "01", "Airtel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZM", 645, "02", "MTN");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZM", 645, "03", "ZAMTEL");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZW", 648, "01", "Net*One");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZW", 648, "03", "Telecel");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("ZW", 648, "04", "Econet");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "01", "ICO");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "02", "Sense Communications International");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "03", "Iridium");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "04", "Globalstar");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "05", "Thuraya RMSS Network");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "06", "Thuraya Satellite Telecommunications Company");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "07", "Ellipso");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "08", "");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "09", "Tele1 Europe");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "10", "ACeS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "11", "Inmarsat");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "12", "Telenor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "13", "GSM.AQ");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "14", "AeroMobile AS");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "15", "OnAir Switzerland Sarl");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "16", "Jasper Systems");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "17", "Navitas");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "18", "Cellular @Sea");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "19", "Vodafone Malta Maritime");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "21", "Seanet");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "23", "Beeline");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "24", "iNum");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "26", "TIM");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "29", "Telenor");
-insert into mcc_mnc_oper_list  (country, mcc, mnc, oper)  values ("__", 901, "32", "Sky High");
-COMMIT;
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 7eb9a77..dc7e762
 #include <core_object.h>
 #include <plugin.h>
 #include <queue.h>
-#include <server.h>
+#include <storage.h>
 #include <co_call.h>
 #include <user_request.h>
+#include <server.h>
 #include <at.h>
 
 #include "s_common.h"
 #include "s_call.h"
 
+static int __call_convert_handle_to_call_id(CoreObject *o, int handle)
+{
+       CallObject *co = NULL;
+       co = tcore_call_object_find_by_handle(o, handle);
+
+       if (co == NULL) {
+               err("CallObject with handle %d not found", handle);
+               return -1;
+       }
+       return tcore_call_object_get_id(co);
+}
+
 static enum tcore_call_status _call_status(unsigned int status)
 {
        switch (status) {
-               case 0:
-                       return TCORE_CALL_STATUS_ACTIVE;
-               case 1:
-                       return TCORE_CALL_STATUS_HELD;
-               case 2:
-                       return TCORE_CALL_STATUS_DIALING;
-               case 3:
-                       return TCORE_CALL_STATUS_ALERT;
-               case 4:
-                       return TCORE_CALL_STATUS_INCOMING;
-               case 5:
-                       return TCORE_CALL_STATUS_WAITING;
-               case 6:
-                       return TCORE_CALL_STATUS_DIALING; //connecting not exist. set to dialing
-               case 7:
-                       return TCORE_CALL_STATUS_IDLE;
-               default:
-                       return TCORE_CALL_STATUS_IDLE;
-                       break;
+       case 0:
+               return TCORE_CALL_STATUS_ACTIVE;
+
+       case 1:
+               return TCORE_CALL_STATUS_HELD;
+
+       case 2:
+               return TCORE_CALL_STATUS_DIALING;
+
+       case 3:
+               return TCORE_CALL_STATUS_ALERT;
+
+       case 4:
+               return TCORE_CALL_STATUS_INCOMING;
+
+       case 5:
+               return TCORE_CALL_STATUS_WAITING;
+
+       case 6:
+               return TCORE_CALL_STATUS_DIALING; /* connecting not exist. set to dialing */
+
+       case 7:
+               return TCORE_CALL_STATUS_IDLE;
+
+       default:
+               return TCORE_CALL_STATUS_IDLE;
        }
 
        return TCORE_CALL_STATUS_IDLE;
@@ -69,10 +89,12 @@ static enum tcore_call_type _call_type(int type)
        switch (type) {
        case 0:
                return TCORE_CALL_TYPE_VOICE;
+
        case 1:
                return TCORE_CALL_TYPE_VIDEO;
+
        default:
-               break;
+       break;
        }
 
        err("invalid call type, returing default call type as voice");
@@ -82,7 +104,7 @@ static enum tcore_call_type _call_type(int type)
 static void _call_branch_by_status(CoreObject *co,
        CallObject *call_obj, enum tcore_call_status call_state)
 {
-       guint call_id;
+       guint call_handle;
        enum tcore_call_type call_type;
        enum tcore_call_status state;
        TcorePlugin *p = tcore_object_ref_plugin(co);
@@ -96,7 +118,7 @@ static void _call_branch_by_status(CoreObject *co,
        }
 
        call_type = tcore_call_object_get_type(call_obj);
-       call_id = tcore_call_object_get_id(call_obj);
+       call_handle = tcore_call_object_get_handle(call_obj);
 
        /* Update Call status */
        tcore_call_object_set_status(call_obj, call_state);
@@ -104,59 +126,63 @@ static void _call_branch_by_status(CoreObject *co,
        if (call_type == TCORE_CALL_TYPE_VOICE) {       /* Voice call notification */
                switch (call_state) {
                case TCORE_CALL_STATUS_ACTIVE: {
-                       struct tnoti_call_status_active data = {0,};
+                       struct tnoti_call_status_active data = {0, };
 
                        data.type = call_type;
-                       data.id = call_id;
+                       data.handle = call_handle;
 
                        /* Send notification */
-                       tcore_server_send_notification (tcore_plugin_ref_server(p), co,
+                       tcore_server_send_notification(tcore_plugin_ref_server(p), co,
                                TNOTI_CALL_STATUS_ACTIVE,
                                sizeof(struct tnoti_call_status_active), &data);
-                       }
-                       break;
+               }
+               break;
+
                case TCORE_CALL_STATUS_HELD: {
-                       struct tnoti_call_status_held data = {0,};
+                       struct tnoti_call_status_held data = {0, };
 
                        data.type = call_type;
-                       data.id = call_id;
+                       data.handle = call_handle;
 
                        /* Send notification */
-                       tcore_server_send_notification (tcore_plugin_ref_server(p), co,
+                       tcore_server_send_notification(tcore_plugin_ref_server(p), co,
                                TNOTI_CALL_STATUS_HELD,
                                sizeof(struct tnoti_call_status_held), &data);
-                       }
-                       break;
+               }
+               break;
+
                case TCORE_CALL_STATUS_DIALING: {
-                       struct tnoti_call_status_dialing data = {0,};
+                       struct tnoti_call_status_dialing data = {0, };
 
                        data.type = call_type;
-                       data.id = call_id;
+                       data.handle = call_handle;
 
                        /* Send notification */
-                       tcore_server_send_notification (tcore_plugin_ref_server(p), co,
+                       tcore_server_send_notification(tcore_plugin_ref_server(p), co,
                                TNOTI_CALL_STATUS_DIALING,
                                sizeof(struct tnoti_call_status_dialing), &data);
-                       }
-                       break;
+               }
+               break;
+
                case TCORE_CALL_STATUS_ALERT: {
-                       struct tnoti_call_status_alert data = {0,};
+                       struct tnoti_call_status_alert data = {0, };
 
                        data.type = call_type;
-                       data.id = call_id;
+                       data.handle = call_handle;
 
                        /* Send notification */
-                       tcore_server_send_notification (tcore_plugin_ref_server(p), co,
+                       tcore_server_send_notification(tcore_plugin_ref_server(p), co,
                                TNOTI_CALL_STATUS_ALERT,
                                sizeof(struct tnoti_call_status_alert), &data);
-                       }
-                       break;
+               }
+               break;
+
                case TCORE_CALL_STATUS_INCOMING:
                case TCORE_CALL_STATUS_WAITING: {
-                       struct tnoti_call_status_incoming data = {0,};
+                       struct tnoti_call_status_incoming data = {0, };
 
                        data.type = call_type;
-                       data.id = call_id;
+                       data.handle = call_handle;
                        tcore_call_object_get_number(call_obj, data.cli.number);
                        data.cli.mode = tcore_call_object_get_cli_mode(call_obj);
                        data.cna.mode = tcore_call_object_get_cna_mode(call_obj);
@@ -165,31 +191,34 @@ static void _call_branch_by_status(CoreObject *co,
                        data.active_line = tcore_call_object_get_active_line(call_obj);
 
                        /* Send notification */
-                       tcore_server_send_notification (tcore_plugin_ref_server(p), co,
+                       tcore_server_send_notification(tcore_plugin_ref_server(p), co,
                                TNOTI_CALL_STATUS_INCOMING,
                                sizeof(struct tnoti_call_status_incoming), &data);
-                       }
-                       break;
+               }
+               break;
+
                case TCORE_CALL_STATUS_IDLE: {
                        struct tnoti_call_status_idle idle;
 
-                       idle.id = call_id;
+                       idle.handle = call_handle;
                        /* TODO - get proper call end cause. */
                        idle.cause = CALL_END_CAUSE_NONE;
                        idle.type = TCORE_CALL_TYPE_VOICE;
 
                        /* Send notification */
-                       tcore_server_send_notification (tcore_plugin_ref_server(p), co,
+                       tcore_server_send_notification(tcore_plugin_ref_server(p), co,
                                TNOTI_CALL_STATUS_IDLE,
                                sizeof(struct tnoti_call_status_idle), &idle);
 
                        /* Free Call object */
                        tcore_call_object_free(co, call_obj);
-                       }
-                       break;
+               }
+               break;
+
                default:
-                       /*Do nothing*/
+                       /* Do nothing */
                        dbg("Default case executed.");
+               break;
                }
        } else {
                err("Unknown Call type: [%d]", call_type);
@@ -199,7 +228,7 @@ static void _call_branch_by_status(CoreObject *co,
 static void _handle_call_get_call_list(CoreObject *co,
        gboolean flag, void *data)
 {
-       gint call_id;
+       gint call_handle;
        gint direction;
        gint mode;
        enum tcore_call_status state;
@@ -229,7 +258,7 @@ static void _handle_call_get_call_list(CoreObject *co,
                        err("Invalid call_id");
                        continue;
                }
-               call_id = atoi(resp);
+               call_handle = atoi(resp);
 
                resp = g_slist_nth_data(tokens, 1);
                if (NULL == resp) {
@@ -260,7 +289,7 @@ static void _handle_call_get_call_list(CoreObject *co,
                mpty = atoi(resp);
 
                resp = g_slist_nth_data(tokens, 5);
-               if (NULL == resp) {
+               if (NULL == resp) {
                        err("Number is NULL");
                } else {
                        /* Strike off double quotes */
@@ -275,25 +304,27 @@ static void _handle_call_get_call_list(CoreObject *co,
 
                                /* Check if number is International or National */
                                ton = ((num_type) >> 4) & 0x07;
-                               if (ton == 1 && num[0] != '+') {
-                                       /* International number */
-                                       number[0] = '+';
-                                       memcpy(&number[1], num, strlen(num));
-                               } else {
-                                       memcpy(number, num, strlen(num));
+                               if (num) {
+                                       if (ton == 1 && num[0] != '+') {
+                                               /* International number */
+                                               number[0] = '+';
+                                               memcpy(&number[1], num, strlen(num));
+                                       } else {
+                                               memcpy(number, num, strlen(num));
+                                       }
                                }
                        }
                        g_free(num);
                }
 
-               dbg("Call ID: [%d] Direction: [%s] Call Type: [%d] " \
+               dbg("Call Handle: [%d] Direction: [%s] Call Type: [%d] " \
                        "Multi-party: [%s] Number: [%s] Type-of-Number: [%d] State: [%d]", \
-                       call_id, (direction ? "Outgoing" : "Incoming"),
+                       call_handle, (direction ? "Outgoing" : "Incoming"),
                        mode, (mpty ? "YES" : "NO"), number, ton, state);
 
-               call_obj = tcore_call_object_find_by_id(co, call_id);
+               call_obj = tcore_call_object_find_by_handle(co, call_handle);
                if (NULL == call_obj) {
-                       call_obj = tcore_call_object_new(co, call_id);
+                       call_obj = tcore_call_object_new(co);
                        if (NULL == call_obj) {
                                err("Unable to create call object");
                                continue;
@@ -362,7 +393,7 @@ static void _on_response_call_get_call_list(TcorePending *p,
 
 static int _call_get_call_list(CoreObject *co, gboolean flag)
 {
-       gboolean*data = NULL;
+       gboolean *data = NULL;
        guint ret = -1;
        dbg("Entry");
 
@@ -371,12 +402,17 @@ static int _call_get_call_list(CoreObject *co, gboolean flag)
                return ret;
        }
        /* Response callback data */
-       data = g_try_malloc(sizeof (flag));
+       data = g_try_malloc(sizeof(flag));
+       if (data == NULL) {
+               err("Memory allocation failed!!");
+               return ret;
+       }
+
        *data = flag;
 
        /* Send Request to modem */
        ret = tcore_prepare_and_send_at_request(co,
-               "AT+CLCC","+CLCC",
+               "AT+CLCC", "+CLCC",
                TCORE_AT_MULTILINE,
                NULL,
                _on_response_call_get_call_list, data,
@@ -386,7 +422,7 @@ static int _call_get_call_list(CoreObject *co, gboolean flag)
 }
 
 
-// NOTIFICATION
+/* NOTIFICATION */
 static void __on_notification_call_incoming(CoreObject *co,
        guint call_id, const void *data)
 {
@@ -421,11 +457,12 @@ static void __on_notification_call_incoming(CoreObject *co,
        }
 
        /* Create Call object */
-       call_obj = tcore_call_object_new(co, (guint)call_id);
+       call_obj = tcore_call_object_new(co);
        if (NULL == call_obj) {
                err(" Unable to create call object");
                return;
        }
+       tcore_call_object_set_id(call_obj, call_id);
 
        lines = (GSList *)data;
        if (lines == NULL) {
@@ -460,16 +497,17 @@ static void __on_notification_call_incoming(CoreObject *co,
        mpty = atoi(resp);
 
        resp = g_slist_nth_data(tokens, 5);
-       if (NULL == resp) {
+       if (NULL == resp) {
                err("Number is NULL");
        } else {
                /* Strike off double quotes */
                num = tcore_at_tok_extract(resp);
-               dbg("Number: [%s]", num);
-
-               memcpy(number, num, strlen(num));
-               number[strlen(num)] = '\0';
-               g_free(num);
+               if (num) {
+                       dbg("Number: [%s]", num);
+                       memcpy(number, num, strlen(num));
+                       number[strlen(num)] = '\0';
+                       g_free(num);
+               }
        }
 
        dbg("Call ID: [%d] Direction: [%s] Call Type: [%d] " \
@@ -479,7 +517,7 @@ static void __on_notification_call_incoming(CoreObject *co,
 
        /* Update Call Object */
        tcore_call_object_set_type(call_obj, mode);
-       tcore_call_object_set_direction(call_obj, direction);
+       tcore_call_object_set_direction(call_obj, TCORE_CALL_DIRECTION_INCOMING);
        tcore_call_object_set_multiparty_state(call_obj, mpty);
        if (number[0] != '\0')
                tcore_call_object_set_cli_info(call_obj,
@@ -502,9 +540,52 @@ static void __on_notification_call_status(CoreObject *co,
 {
        CallObject *call_obj = NULL;
 
+       dbg("call_state = %d", call_state);
+
        switch (call_state) {
        case TCORE_CALL_STATUS_ACTIVE:
-       case TCORE_CALL_STATUS_HELD:
+       {
+               int prev_status;
+
+               dbg("TCORE_CALL_STATUS_ACTIVE");
+               call_obj = tcore_call_object_find_by_id(co, call_id);
+               if (call_obj == NULL) {
+                       err("Unable to find Call Object - Call ID: [%d]", call_id);
+                       return;
+               }
+               /*
+               * Active / Held status notification will be handled in _call_get_call_list().
+               * Because of timing issue, we should not notifity this event before updating call info.
+               * One exception is that we will send this event when active status is receviced during dialing or incoming.
+               */
+               prev_status = tcore_call_object_get_status(call_obj);
+               if ((prev_status == TCORE_CALL_STATUS_DIALING)
+                       || (prev_status == TCORE_CALL_STATUS_ALERT)
+                       || (prev_status == TCORE_CALL_STATUS_INCOMING)
+                       || (prev_status == TCORE_CALL_STATUS_WAITING)) {
+                       _call_branch_by_status(co, call_obj, call_state);
+               }
+       }
+       break;
+       case TCORE_CALL_STATUS_HELD:{
+               dbg("TCORE_CALL_STATUS_HELD");
+               call_obj = tcore_call_object_find_by_id(co, call_id);
+               if (!call_obj) {
+                       call_obj = tcore_call_object_new(co);
+                       if (!call_obj) {
+                               err("Unable to create Call Object");
+                               return;
+                       }
+                       tcore_call_object_set_id(call_obj, call_id);
+               }
+
+               /*
+                * Make request to get current Call list.
+                * Then send notification to application
+                */
+               _call_get_call_list(co, TRUE);
+       }
+       break;
        case TCORE_CALL_STATUS_ALERT:
        case TCORE_CALL_STATUS_IDLE: {
                call_obj = tcore_call_object_find_by_id(co, call_id);
@@ -521,11 +602,12 @@ static void __on_notification_call_status(CoreObject *co,
        case TCORE_CALL_STATUS_DIALING: {
                call_obj = tcore_call_object_find_by_id(co, call_id);
                if (!call_obj) {
-                       call_obj = tcore_call_object_new(co, call_id);
+                       call_obj = tcore_call_object_new(co);
                        if (!call_obj) {
                                err("Unable to create Call Object");
                                return;
                        }
+                       tcore_call_object_set_id(call_obj, call_id);
                }
 
                /*
@@ -608,7 +690,7 @@ static gboolean on_notification_call_cssu_info(CoreObject *co,
        gchar *cmd = 0;
        gint local_index = 0;
        gint code2 = -1;
-       gchar number[MAX_CALL_NUMBER_LEN + 1] = {'\0',};
+       gchar number[MAX_CALL_NUMBER_LEN + 1] = {'\0', };
        TcorePlugin *p = NULL;
 
        dbg("Entry");
@@ -638,9 +720,11 @@ static gboolean on_notification_call_cssu_info(CoreObject *co,
 
        if ((resp = g_slist_nth_data(tokens, 2))) {
                resp = tcore_at_tok_extract((const gchar *)resp);
-               memcpy(number, resp, strlen(resp));
-               number[strlen(resp)] = '\0';;
-               g_free(resp);
+               if (resp) {
+                       memcpy(number, resp, strlen(resp));
+                       number[strlen(resp)] = '\0';;
+                       g_free(resp);
+               }
        }
        dbg("+CSSU: <code2>: %d <index>: %d <number>: %s ", code2, local_index, number);
 
@@ -752,8 +836,8 @@ static void on_response_call_answer(TcorePending *p,
 
        ur = tcore_pending_ref_user_request(p);
        if (ur) {
-               req_buf = (struct treq_call_answer*) tcore_user_request_ref_data( ur, 0);
-               resp.id = req_buf->id;
+               req_buf = (struct treq_call_answer *)tcore_user_request_ref_data(ur, 0);
+               resp.handle = req_buf->handle;
                tcore_user_request_send_response(ur,
                        TRESP_CALL_ANSWER,
                        sizeof(struct tresp_call_answer), &resp);
@@ -791,8 +875,8 @@ static void on_response_call_release(TcorePending *p,
 
        ur = tcore_pending_ref_user_request(p);
        if (ur) {
-               req_buf = (struct treq_call_end*) tcore_user_request_ref_data( ur, 0);
-               resp.id = req_buf->id;
+               req_buf = (struct treq_call_end *)tcore_user_request_ref_data(ur, 0);
+               resp.handle = req_buf->handle;
                resp.type = req_buf->type;
                tcore_user_request_send_response(ur,
                        TRESP_CALL_END,
@@ -831,8 +915,8 @@ static void on_response_call_hold(TcorePending *p,
 
        ur = tcore_pending_ref_user_request(p);
        if (ur) {
-               req_buf = (struct treq_call_hold*) tcore_user_request_ref_data( ur, 0);
-               resp.id = req_buf->id;
+               req_buf = (struct treq_call_hold *)tcore_user_request_ref_data(ur, 0);
+               resp.handle = req_buf->handle;
                tcore_user_request_send_response(ur,
                        TRESP_CALL_HOLD,
                        sizeof(struct tresp_call_hold), &resp);
@@ -848,6 +932,7 @@ static void on_response_call_active(TcorePending *p,
        struct treq_call_active *req_buf = NULL;
        const struct tcore_at_response *at_resp = data;
        UserRequest *ur = NULL;
+       CoreObject *core_obj = NULL;
 
        dbg("Entry");
 
@@ -870,14 +955,18 @@ static void on_response_call_active(TcorePending *p,
 
        ur = tcore_pending_ref_user_request(p);
        if (ur) {
-               req_buf = (struct treq_call_active*) tcore_user_request_ref_data( ur, 0);
-               resp.id = req_buf->id;
+               req_buf = (struct treq_call_active *)tcore_user_request_ref_data(ur, 0);
+               resp.handle = req_buf->handle;
                tcore_user_request_send_response(ur,
                        TRESP_CALL_ACTIVE,
                        sizeof(struct tresp_call_active), &resp);
        } else {
                err("ur is NULL");
        }
+
+       core_obj = tcore_pending_ref_core_object(p);
+       _call_get_call_list(core_obj, TRUE);
+
 }
 
 static void on_response_call_swap(TcorePending *p,
@@ -909,8 +998,8 @@ static void on_response_call_swap(TcorePending *p,
 
        ur = tcore_pending_ref_user_request(p);
        if (ur) {
-               req_buf = (struct treq_call_swap*) tcore_user_request_ref_data( ur, 0);
-               resp.id = req_buf->id;
+               req_buf = (struct treq_call_swap *)tcore_user_request_ref_data(ur, 0);
+               resp.handle = req_buf->handle;
                tcore_user_request_send_response(ur,
                        TRESP_CALL_SWAP,
                        sizeof(struct tresp_call_swap), &resp);
@@ -926,6 +1015,7 @@ static void on_response_call_join(TcorePending *p,
        struct treq_call_join *req_buf = NULL;
        const struct tcore_at_response *at_resp = data;
        UserRequest *ur = NULL;
+       CoreObject *core_obj = NULL;
 
        dbg("Entry");
 
@@ -948,14 +1038,18 @@ static void on_response_call_join(TcorePending *p,
 
        ur = tcore_pending_ref_user_request(p);
        if (ur) {
-               req_buf = (struct treq_call_join*) tcore_user_request_ref_data( ur, 0);
-               resp.id = req_buf->id;
+               req_buf = (struct treq_call_join *)tcore_user_request_ref_data(ur, 0);
+               resp.handle = req_buf->handle;
                tcore_user_request_send_response(ur,
                        TRESP_CALL_JOIN,
                        sizeof(struct tresp_call_join), &resp);
        } else {
                err("ur is NULL");
        }
+
+       core_obj = tcore_pending_ref_core_object(p);
+       _call_get_call_list(core_obj, TRUE);
+
 }
 
 static void on_response_call_split(TcorePending *p,
@@ -987,14 +1081,15 @@ static void on_response_call_split(TcorePending *p,
 
        ur = tcore_pending_ref_user_request(p);
        if (ur) {
-               req_buf = (struct treq_call_split*) tcore_user_request_ref_data( ur, 0);
-               resp.id = req_buf->id;
+               req_buf = (struct treq_call_split *)tcore_user_request_ref_data(ur, 0);
+               resp.handle = req_buf->handle;
                tcore_user_request_send_response(ur,
                        TRESP_CALL_SPLIT,
                        sizeof(struct tresp_call_split), &resp);
        } else {
                err("ur is NULL");
        }
+
 }
 
 static void on_response_call_deflect(TcorePending *p,
@@ -1026,8 +1121,8 @@ static void on_response_call_deflect(TcorePending *p,
 
        ur = tcore_pending_ref_user_request(p);
        if (ur) {
-               req_buf = (struct treq_call_deflect*) tcore_user_request_ref_data( ur, 0);
-               resp.id = req_buf->id;
+               req_buf = (struct treq_call_deflect *)tcore_user_request_ref_data(ur, 0);
+               resp.handle = req_buf->handle;
                tcore_user_request_send_response(ur,
                        TRESP_CALL_DEFLECT,
                        sizeof(struct tresp_call_deflect), &resp);
@@ -1065,8 +1160,8 @@ static void on_response_call_transfer(TcorePending *p,
 
        ur = tcore_pending_ref_user_request(p);
        if (ur) {
-               req_buf = (struct treq_call_transfer*) tcore_user_request_ref_data( ur, 0);
-               resp.id = req_buf->id;
+               req_buf = (struct treq_call_transfer *)tcore_user_request_ref_data(ur, 0);
+               resp.handle = req_buf->handle;
                tcore_user_request_send_response(ur,
                        TRESP_CALL_TRANSFER,
                        sizeof(struct tresp_call_transfer), &resp);
@@ -1076,7 +1171,7 @@ static void on_response_call_transfer(TcorePending *p,
 }
 
  /* Request */
-static TReturn s_call_outgoing( CoreObject *o, UserRequest *ur)
+static TReturn s_call_outgoing(CoreObject *o, UserRequest *ur)
 {
        gchar *at_cmd;
        const gchar *clir;
@@ -1086,7 +1181,7 @@ static TReturn s_call_outgoing( CoreObject *o, UserRequest *ur)
 
        dbg("Entry");
 
-       dial_info = (struct treq_call_dial*)tcore_user_request_ref_data( ur, 0);
+       dial_info = (struct treq_call_dial *)tcore_user_request_ref_data(ur, 0);
 
        if (dial_info->type == CALL_TYPE_VIDEO) {
                err("Video call is not supported in atmodem");
@@ -1124,7 +1219,7 @@ static TReturn s_call_outgoing( CoreObject *o, UserRequest *ur)
        return ret;
 }
 
-static TReturn s_call_answer( CoreObject *o, UserRequest *ur)
+static TReturn s_call_answer(CoreObject *o, UserRequest *ur)
 {
        gchar *at_cmd;
        struct treq_call_answer *ans_info = NULL;
@@ -1132,7 +1227,7 @@ static TReturn s_call_answer( CoreObject *o, UserRequest *ur)
 
        dbg("Entry");
 
-       ans_info = (struct treq_call_answer*)tcore_user_request_ref_data( ur, 0);
+       ans_info = (struct treq_call_answer *)tcore_user_request_ref_data(ur, 0);
 
        if (ans_info->type == CALL_ANSWER_TYPE_ACCEPT) {
                /* AT-Command */
@@ -1167,22 +1262,25 @@ static TReturn s_call_answer( CoreObject *o, UserRequest *ur)
        return ret;
 }
 
-static TReturn s_call_release( CoreObject *o, UserRequest *ur)
+static TReturn s_call_release(CoreObject *o, UserRequest *ur)
 {
        gchar *at_cmd;
        struct treq_call_end *end_info = NULL;
        TReturn ret = TCORE_RETURN_FAILURE;
+       int call_id;
 
        dbg("Entry");
 
-       end_info = (struct treq_call_end*)tcore_user_request_ref_data( ur, 0);
+       end_info = (struct treq_call_end *)tcore_user_request_ref_data(ur, 0);
+
+       call_id = __call_convert_handle_to_call_id(o, end_info->handle);
 
        if (end_info->type == CALL_END_TYPE_ALL) {
                /* AT-Command */
-               at_cmd = g_strdup_printf("%s", "AT+CHLD=8");
+               at_cmd = g_strdup_printf("%s", "ATH");
        } else if (end_info->type == CALL_END_TYPE_DEFAULT) {
                /* AT-Command */
-               at_cmd = g_strdup_printf("%s%d", "AT+CHLD=1",end_info->id);
+               at_cmd = g_strdup_printf("%s%d", "AT+CHLD=1", call_id);
        } else if (end_info->type == CALL_END_TYPE_ACTIVE_ALL) {
                /* AT-Command */
                at_cmd = g_strdup_printf("%s", "AT+CHLD=1");
@@ -1210,7 +1308,7 @@ static TReturn s_call_release( CoreObject *o, UserRequest *ur)
        return ret;
 }
 
-static TReturn s_call_hold( CoreObject *o, UserRequest *ur)
+static TReturn s_call_hold(CoreObject *o, UserRequest *ur)
 {
        TReturn ret = TCORE_RETURN_FAILURE;
        gchar *at_cmd;
@@ -1233,7 +1331,7 @@ static TReturn s_call_hold( CoreObject *o, UserRequest *ur)
        return ret;
 }
 
-static TReturn s_call_active( CoreObject *o, UserRequest *ur)
+static TReturn s_call_active(CoreObject *o, UserRequest *ur)
 {
        TReturn ret = TCORE_RETURN_FAILURE;
        gchar *at_cmd;
@@ -1256,7 +1354,7 @@ static TReturn s_call_active( CoreObject *o, UserRequest *ur)
        return ret;
 }
 
-static TReturn s_call_swap( CoreObject *o, UserRequest *ur)
+static TReturn s_call_swap(CoreObject *o, UserRequest *ur)
 {
        TReturn ret = TCORE_RETURN_FAILURE;
        gchar *at_cmd;
@@ -1279,7 +1377,7 @@ static TReturn s_call_swap( CoreObject *o, UserRequest *ur)
        return ret;
 }
 
-static TReturn s_call_join( CoreObject *o, UserRequest *ur)
+static TReturn s_call_join(CoreObject *o, UserRequest *ur)
 {
        TReturn ret = TCORE_RETURN_FAILURE;
        gchar *at_cmd;
@@ -1302,17 +1400,19 @@ static TReturn s_call_join( CoreObject *o, UserRequest *ur)
        return ret;
 }
 
-static TReturn s_call_split( CoreObject *o, UserRequest *ur)
+static TReturn s_call_split(CoreObject *o, UserRequest *ur)
 {
        gchar *at_cmd;
        struct treq_call_split *split_info = NULL;
        TReturn ret = TCORE_RETURN_FAILURE;
+       int call_id;
 
        dbg("Entry");
 
-       split_info = (struct treq_call_split*)tcore_user_request_ref_data( ur, 0);
+       split_info = (struct treq_call_split *)tcore_user_request_ref_data(ur, 0);
+       call_id = __call_convert_handle_to_call_id(o, split_info->handle);
 
-       at_cmd = g_strdup_printf("%s%d", "AT+CHLD=2", split_info->id);
+       at_cmd = g_strdup_printf("%s%d", "AT+CHLD=2", call_id);
 
        /* AT-Command */
        dbg(" at command : %s", at_cmd);
@@ -1330,7 +1430,7 @@ static TReturn s_call_split( CoreObject *o, UserRequest *ur)
        return ret;
 }
 
-static TReturn s_call_deflect( CoreObject *o, UserRequest *ur)
+static TReturn s_call_deflect(CoreObject *o, UserRequest *ur)
 {
        gchar *at_cmd;
        struct treq_call_deflect *deflect_info = NULL;
@@ -1338,7 +1438,7 @@ static TReturn s_call_deflect( CoreObject *o, UserRequest *ur)
 
        dbg("Entry");
 
-       deflect_info = (struct treq_call_deflect*)tcore_user_request_ref_data( ur, 0);
+       deflect_info = (struct treq_call_deflect *)tcore_user_request_ref_data(ur, 0);
 
        at_cmd = g_strdup_printf("AT+CTFR=%s", deflect_info->number);
        dbg("at command : %s", at_cmd);
@@ -1356,7 +1456,7 @@ static TReturn s_call_deflect( CoreObject *o, UserRequest *ur)
        return ret;
 }
 
-static TReturn s_call_transfer( CoreObject *o, UserRequest *ur)
+static TReturn s_call_transfer(CoreObject *o, UserRequest *ur)
 {
        TReturn ret = TCORE_RETURN_FAILURE;
        gchar *at_cmd;
@@ -1379,6 +1479,32 @@ static TReturn s_call_transfer( CoreObject *o, UserRequest *ur)
        return ret;
 }
 
+static TReturn s_get_preferred_voice_subscription(CoreObject *o, UserRequest *ur)
+{
+       struct tresp_call_get_preferred_voice_subscription resp_data = {0, };
+       TReturn ret = TCORE_RETURN_FAILURE;
+       Server *server;
+       Storage *strg = NULL;
+
+       dbg("Entry");
+
+       server = tcore_plugin_ref_server(tcore_object_ref_plugin(o));
+       strg = tcore_server_find_storage(server, "vconf");
+
+       /* VCONFKEY is aligned to resp_data->preferred_subs type */
+       resp_data.preferred_subs = tcore_storage_get_int(strg, STORAGE_KEY_TELEPHONY_PREFERRED_VOICE_SUBSCRIPTION);
+       dbg("Preferred Subscription: [%d]", resp_data.preferred_subs);
+
+       resp_data.err = CALL_ERROR_NONE;
+       /* Send Response */
+       ret = tcore_user_request_send_response(ur,
+               TRESP_CALL_GET_PREFERRED_VOICE_SUBSCRIPTION,
+               sizeof(struct tresp_call_get_preferred_voice_subscription), &resp_data);
+
+       dbg("ret: [0x%x]", ret);
+       return ret;
+}
+
 /* Call Operations */
 static struct tcore_call_operations call_ops = {
        .dial = s_call_outgoing,
@@ -1400,7 +1526,7 @@ static struct tcore_call_operations call_ops = {
        .set_sound_mute_status = NULL,
        .get_sound_mute_status = NULL,
        .set_preferred_voice_subscription = NULL,
-       .get_preferred_voice_subscription = NULL,
+       .get_preferred_voice_subscription = s_get_preferred_voice_subscription,
 };
 
 gboolean s_call_init(TcorePlugin *p, TcoreHal *h)
@@ -1413,13 +1539,13 @@ gboolean s_call_init(TcorePlugin *p, TcoreHal *h)
        if (!o)
                return FALSE;
 
-       tcore_object_add_callback( o, "+SCLCC", on_notification_call_status, NULL);
-       tcore_object_add_callback( o, "+CSSU:", on_notification_call_cssu_info, NULL);
+       tcore_object_add_callback(o, "+SCLCC", on_notification_call_status, NULL);
+       tcore_object_add_callback(o, "+CSSU:", on_notification_call_cssu_info, NULL);
 
        return TRUE;
 }
 
-void s_call_exit( TcorePlugin *p)
+void s_call_exit(TcorePlugin *p)
 {
        CoreObject *o;
 
old mode 100755 (executable)
new mode 100644 (file)
index 6f74763..00a2ece
@@ -32,6 +32,8 @@
 #undef MAX
 #define        MAX(a, b)       (((a) > (b)) ? (a) : (b))
 
+#define TAB_SPACE      "  "
+
 #define        bitsize(type) (sizeof(type) * 8)
 
 #define        copymask(type) ((0xffffffff) >> (32 - bitsize(type)))
@@ -66,7 +68,7 @@ char _util_unpackb(const char *src, int pos, int len)
                src++;
                len -= 8 - pos;
 
-               if (len > 0) result = (result << len) | (*src >> (8 - len));   // if any bits left
+               if (len > 0) result = (result << len) | (*src >> (8 - len));   /* if any bits left */
        }
 
        return result;
@@ -76,13 +78,12 @@ char _util_convert_byte_hexChar(char val)
 {
        char hex_char;
 
-       if (val <= 9) {
+       if (val <= 9)
                hex_char = (char) (val + '0');
-       } else if (val >= 10 && val <= 15) {
+       else if (val >= 10 && val <= 15)
                hex_char = (char) (val - 10 + 'A');
-       } else {
+       else
                hex_char = '0';
-}
 
        return (hex_char);
 }
@@ -93,7 +94,7 @@ gboolean util_byte_to_hex(const char *byte_pdu, char *hex_pdu, int num_bytes)
        char nibble;
        int buf_pos = 0;
 
-        for (i = 0; i < num_bytes * 2; i++) {
+       for (i = 0; i < num_bytes * 2; i++) {
                nibble = _util_unpackb(byte_pdu, buf_pos, 4);
                buf_pos += 4;
                hex_pdu[i] = _util_convert_byte_hexChar(nibble);
@@ -117,18 +118,17 @@ void util_hex_dump(char *pad, int size, const void *data)
        p = (unsigned const char *)data;
 
        snprintf(buf, 255, "%s%04X: ", pad, 0);
-       for (i = 0; i<size; i++) {
+       for (i = 0; i < size; i++) {
                snprintf(hex, 4, "%02X ", p[i]);
-               strcat(buf, hex);
+               strncat(buf, hex, strlen(hex));
 
                if ((i + 1) % 8 == 0) {
                        if ((i + 1) % 16 == 0) {
                                msg("%s", buf);
                                memset(buf, 0, 255);
                                snprintf(buf, 255, "%s%04X: ", pad, i + 1);
-                       }
-                       else {
-                               strcat(buf, "  ");
+                       } else {
+                               strncat(buf, TAB_SPACE, strlen(TAB_SPACE));
                        }
                }
        }
@@ -169,12 +169,10 @@ unsigned int util_assign_message_sequence_id(TcorePlugin *p)
        if (gd->msg_auto_id_current == 0) {
                gd->msg_auto_id_current = gd->msg_auto_id_start;
                dbg("pending_auto_id_current is 0, reset to start");
-       }
-       else if (gd->msg_auto_id_current >= gd->msg_auto_id_end) {
+       } else if (gd->msg_auto_id_current >= gd->msg_auto_id_end) {
                gd->msg_auto_id_current = gd->msg_auto_id_start;
                dbg("pending_auto_id_current is over, reset to start");
-       }
-       else {
+       } else {
                gd->msg_auto_id_current++;
        }
 
@@ -240,22 +238,21 @@ UserRequest *util_pop_waiting_job(GQueue *queue, unsigned int id)
 
 unsigned char util_hexCharToInt(char c)
 {
-    if (c >= '0' && c <= '9')
-        return (c - '0');
-    else if (c >= 'A' && c <= 'F')
-        return (c - 'A' + 10);
-    else if (c >= 'a' && c <= 'f')
-        return (c - 'a' + 10);
-    else
-    {
-        dbg("invalid charater!!");
-        return -1;
-    }
+       if (c >= '0' && c <= '9') {
+               return (c - '0');
+       } else if (c >= 'A' && c <= 'F') {
+               return (c - 'A' + 10);
+       } else if (c >= 'a' && c <= 'f') {
+               return (c - 'a' + 10);
+       } else {
+               dbg("invalid charater!!");
+               return -1;
+       }
 }
 
-char * util_hexStringToBytes(char * s)
+char *util_hexStringToBytes(char *s)
 {
-    char * ret;
+       char *ret;
        int i;
        int sz;
 
@@ -264,12 +261,16 @@ char * util_hexStringToBytes(char * s)
 
        sz = strlen(s);
 
-       ret = calloc((sz/2)+1, 1);
+       ret = g_try_malloc0((sz / 2) + 1);
+       if (ret == NULL) {
+               err("Memory allocation failed!!");
+               return NULL;
+       }
 
        dbg("Convert String to Binary!!");
 
        for (i = 0; i < sz; i += 2) {
-               ret[i / 2] = (char) ((util_hexCharToInt(s[i]) << 4) | util_hexCharToInt(s[i + 1]));
+               ret[i / 2] = (char)((util_hexCharToInt(s[i]) << 4) | util_hexCharToInt(s[i + 1]));
                dbg("[%02x]", ret[i/2]);
        }
 
@@ -279,7 +280,6 @@ char * util_hexStringToBytes(char * s)
 void on_send_at_request(TcorePending *p,
        gboolean send_status, void *user_data)
 {
-       dbg("Send - [%s]",
-               (send_status == TRUE ? "OK" : "NOK"));
+       dbg("Send - [%s]", (send_status == TRUE ? "OK" : "NOK"));
 }
 
old mode 100755 (executable)
new mode 100644 (file)
index d3a9ae0..7c54491
@@ -53,14 +53,14 @@ static gboolean on_sys_event_modem_power(CoreObject *co_modem, const void *event
        struct tnoti_modem_power modem_power;
        enum cp_state *state;
 
-       state = (enum cp_state*)event_info;
+       state = (enum cp_state *)event_info;
        dbg("state : (0x%x)", *state);
 
-       if ( *state == CP_STATE_OFFLINE || *state == CP_STATE_CRASH_RESET ) {
+       if (*state == CP_STATE_OFFLINE || *state == CP_STATE_CRASH_RESET) {
 
                tcore_modem_set_powered(co_modem, FALSE);
 
-               if ( *state == CP_STATE_OFFLINE )
+               if (*state == CP_STATE_OFFLINE)
                        modem_power.state = MODEM_STATE_OFFLINE;
                else
                        modem_power.state = MODEM_STATE_ERROR;
@@ -164,10 +164,10 @@ static void on_response_poweron(TcorePending *p,
 {
        const struct tcore_at_response *at_resp = data;
 
-       if(at_resp && at_resp->success > 0) {
+       if (at_resp && at_resp->success > 0) {
                dbg("RESPONSE OK");
                on_event_modem_power(tcore_pending_ref_core_object(p), NULL, NULL);
-       } else{
+       } else {
                dbg("RESPONSE NOK");
                s_modem_send_poweron(tcore_pending_ref_plugin(p));
        }
@@ -207,7 +207,7 @@ static void on_response_modem_set_flight_mode(TcorePending *p,
                flight_resp.result = TCORE_RETURN_FAILURE;
 
        dbg("Setting Modem Flight mode - [%s] - [%s]",
-               ((flight_req->enable == 1) ? "ON": "OFF"),
+               ((flight_req->enable == 1) ? "ON" : "OFF"),
                (flight_resp.result == TCORE_RETURN_SUCCESS ? "SUCCESS" : "FAIL"));
 
        if (ur) {
@@ -226,7 +226,7 @@ static void on_response_modem_set_flight_mode(TcorePending *p,
 
                        flight_mode.enable = flight_req->enable;
                        dbg("Boot-up: Modem Flight mode - [%s]",
-                               (flight_req->enable ? "ON": "OFF"));
+                               (flight_req->enable ? "ON" : "OFF"));
 
                        /* Send notification */
                        tcore_server_send_notification(tcore_plugin_ref_server(tcore_object_ref_plugin(co_modem)),
@@ -234,8 +234,7 @@ static void on_response_modem_set_flight_mode(TcorePending *p,
                                TNOTI_MODEM_FLIGHT_MODE,
                                sizeof(struct tnoti_modem_flight_mode), &flight_mode);
                }
-       }
-       else {
+       } else {
                err("ur is NULL");
        }
 }
@@ -245,7 +244,7 @@ static void on_response_modem_get_imei(TcorePending *p,
 {
        const struct tcore_at_response *at_resp = data;
        UserRequest *ur = NULL;
-       struct tresp_modem_get_imei imei_resp= {0, };
+       struct tresp_modem_get_imei imei_resp = {0, };
 
        dbg("Enter");
 
@@ -294,7 +293,7 @@ static void on_response_modem_get_version(TcorePending *p,
 {
        const struct tcore_at_response *at_resp = data;
        UserRequest *ur = NULL;
-       struct tresp_modem_get_version version_resp= {0, };
+       struct tresp_modem_get_version version_resp = {0, };
 
        dbg("Enter");
 
@@ -369,7 +368,7 @@ static TReturn power_off(CoreObject *co_modem, UserRequest *ur)
        tcore_modem_set_powered(co_modem, FALSE);
 
        /* Send notification */
-       tcore_server_send_notification( tcore_plugin_ref_server(tcore_object_ref_plugin(co_modem)),
+       tcore_server_send_notification(tcore_plugin_ref_server(tcore_object_ref_plugin(co_modem)),
                co_modem,
                TNOTI_MODEM_POWER,
                sizeof(struct tnoti_modem_power), &modem_power);
old mode 100755 (executable)
new mode 100644 (file)
index 51bfed6..fb8477d
 #define ATMODEM_NETWORK_BASE_16        16
 
 typedef enum {
-       ATMDOEM_NETWORK_ACT_GSM,        /* GSM */
-       ATMDOEM_NETWORK_ACT_GSM_COMPACT,        /* GSM Compact */
-       ATMDOEM_NETWORK_ACT_UTRAN,      /* UTRAN */
-       ATMDOEM_NETWORK_ACT_GSM_EGPRS,  /* GSM w/EGPRS */
-       ATMDOEM_NETWORK_ACT_UTRAN_HSDPA,        /* UTRAN w/HSDPA */
-       ATMDOEM_NETWORK_ACT_UTRAN_HSUPA,        /* UTRAN w/HSUPA */
-       ATMDOEM_NETWORK_ACT_UTRAN_HSDPA_HSUPA,  /* UTRAN w/HSDPA and HSUPA */
-       ATMDOEM_NETWORK_ACT_E_UTRAN,    /* E-UTRAN */
+       ATMDOEM_NETWORK_ACT_GSM, /* GSM */
+       ATMDOEM_NETWORK_ACT_GSM_COMPACT, /* GSM Compact */
+       ATMDOEM_NETWORK_ACT_UTRAN, /* UTRAN */
+       ATMDOEM_NETWORK_ACT_GSM_EGPRS, /* GSM w/EGPRS */
+       ATMDOEM_NETWORK_ACT_UTRAN_HSDPA, /* UTRAN w/HSDPA */
+       ATMDOEM_NETWORK_ACT_UTRAN_HSUPA, /* UTRAN w/HSUPA */
+       ATMDOEM_NETWORK_ACT_UTRAN_HSDPA_HSUPA, /* UTRAN w/HSDPA and HSUPA */
+       ATMDOEM_NETWORK_ACT_E_UTRAN, /* E-UTRAN */
 } AtmodemNetworkAct;
 
 #define AT_CREG_STAT_NOT_REG           0 /* not registered, MT is not currently searching a new operator to register to */
@@ -129,11 +129,15 @@ static void _insert_mcc_mnc_oper_list(TcorePlugin *p, CoreObject *co_network)
        g_hash_table_iter_init(&iter, result);
        while (g_hash_table_iter_next(&iter, &key, &value) == TRUE) {
                row = value;
-               noi = calloc(sizeof(struct tcore_network_operator_info), 1);
-               snprintf(noi->mcc, 4, "%s",(const gchar *)(g_hash_table_lookup(row, "1")));
-               snprintf(noi->mnc, 4, "%s",(const gchar *)(g_hash_table_lookup(row, "2")));
-               snprintf(noi->name, 41, "%s",(const gchar *)(g_hash_table_lookup(row, "3")));
-               snprintf(noi->country, 4, "%s",(const gchar *)(g_hash_table_lookup(row, "0")));
+               noi = g_try_malloc0(sizeof(struct tcore_network_operator_info));
+               if (noi == NULL) {
+                       err("Memory allocation failed!!");
+                       continue;
+               }
+               snprintf(noi->mcc, 4, "%s", (const char *)(g_hash_table_lookup(row, "1")));
+               snprintf(noi->mnc, 4, "%s", (const char *)(g_hash_table_lookup(row, "2")));
+               snprintf(noi->name, 41, "%s", (const char *)(g_hash_table_lookup(row, "3")));
+               snprintf(noi->country, 4, "%s", (const char *)(g_hash_table_lookup(row, "0")));
 
                tcore_network_operator_info_add(co_network, noi);
                g_free(noi);
@@ -170,70 +174,72 @@ static enum telephony_network_service_domain_status __atmodem_network_map_stat(g
 }
 
 static enum telephony_network_service_type _get_service_type(enum telephony_network_service_type prev_type,
-                                                                                       int act, int cs_status, int ps_status)
+       int act, int cs_status, int ps_status)
 {
        enum telephony_network_service_type ret;
 
        ret = prev_type;
 
        switch (act) {
-               case NETWORK_ACT_NOT_SPECIFIED:
-                       ret = NETWORK_SERVICE_TYPE_UNKNOWN;
-                       break;
+       case NETWORK_ACT_NOT_SPECIFIED:
+               ret = NETWORK_SERVICE_TYPE_UNKNOWN;
+       break;
+
+       case NETWORK_ACT_GSM:
+               if (prev_type == NETWORK_SERVICE_TYPE_2_5G_EDGE)
+                       ret = NETWORK_SERVICE_TYPE_2_5G_EDGE;
+               else
+                       ret = NETWORK_SERVICE_TYPE_2G;
+       break;
 
-               case NETWORK_ACT_GSM:
-                       if (prev_type == NETWORK_SERVICE_TYPE_2_5G_EDGE)
-                               ret = NETWORK_SERVICE_TYPE_2_5G_EDGE;
-                       else
-                               ret = NETWORK_SERVICE_TYPE_2G;
-                       break;
+       case NETWORK_ACT_IS95A:
+       case NETWORK_ACT_IS95B:
+               ret = NETWORK_SERVICE_TYPE_2G;
+       break;
 
-               case NETWORK_ACT_IS95A:
-               case NETWORK_ACT_IS95B:
-                       ret = NETWORK_SERVICE_TYPE_2G;
-                       break;
+       case NETWORK_ACT_CDMA_1X:
+       case NETWORK_ACT_GPRS:
+               ret = NETWORK_SERVICE_TYPE_2_5G;
+       break;
 
-               case NETWORK_ACT_CDMA_1X:
-               case NETWORK_ACT_GPRS:
-                       ret = NETWORK_SERVICE_TYPE_2_5G;
-                       break;
+       case NETWORK_ACT_EGPRS:
+               return NETWORK_SERVICE_TYPE_2_5G_EDGE;
 
-               case NETWORK_ACT_EGPRS:
-                       return NETWORK_SERVICE_TYPE_2_5G_EDGE;
-                       break;
+       case NETWORK_ACT_UMTS:
+               ret = NETWORK_SERVICE_TYPE_3G;
+       break;
 
-               case NETWORK_ACT_UMTS:
-                       ret = NETWORK_SERVICE_TYPE_3G;
-                       break;
+       case NETWORK_ACT_EVDO_REV0:
+       case NETWORK_ACT_CDMA_1X_EVDO_REV0:
+       case NETWORK_ACT_EVDO_REVA:
+       case NETWORK_ACT_CDMA_1X_EVDO_REVA:
+       case NETWORK_ACT_EVDV:
+               ret = NETWORK_SERVICE_TYPE_3G;
+       break;
 
-               case NETWORK_ACT_EVDO_REV0:
-               case NETWORK_ACT_CDMA_1X_EVDO_REV0:
-               case NETWORK_ACT_EVDO_REVA:
-               case NETWORK_ACT_CDMA_1X_EVDO_REVA:
-               case NETWORK_ACT_EVDV:
-                       ret = NETWORK_SERVICE_TYPE_3G;
-                       break;
-               default :
-                       /*Do Nothing*/
-                       dbg ("Default Case executed.");
+       default:
+               /*Do Nothing*/
+               dbg("Default Case executed.");
+       break;
        }
 
-       if (cs_status == NETWORK_SERVICE_DOMAIN_STATUS_NO && ps_status == NETWORK_SERVICE_DOMAIN_STATUS_NO) {
+       if (cs_status == NETWORK_SERVICE_DOMAIN_STATUS_NO
+                       && ps_status == NETWORK_SERVICE_DOMAIN_STATUS_NO) {
                ret = NETWORK_SERVICE_TYPE_NO_SERVICE;
-       }
-       else if (cs_status == NETWORK_SERVICE_DOMAIN_STATUS_SEARCH || ps_status == NETWORK_SERVICE_DOMAIN_STATUS_SEARCH) {
-               if (cs_status == NETWORK_SERVICE_DOMAIN_STATUS_FULL || ps_status == NETWORK_SERVICE_DOMAIN_STATUS_FULL) {
+       } else if (cs_status == NETWORK_SERVICE_DOMAIN_STATUS_SEARCH
+                       || ps_status == NETWORK_SERVICE_DOMAIN_STATUS_SEARCH) {
+               if (cs_status == NETWORK_SERVICE_DOMAIN_STATUS_FULL
+                               || ps_status == NETWORK_SERVICE_DOMAIN_STATUS_FULL) {
                        /* no change */
-               }
-               else {
+               } else {
                        ret = NETWORK_SERVICE_TYPE_SEARCH;
                }
-       }
-       else if (cs_status == NETWORK_SERVICE_DOMAIN_STATUS_EMERGENCY || ps_status == NETWORK_SERVICE_DOMAIN_STATUS_EMERGENCY) {
-               if (cs_status == NETWORK_SERVICE_DOMAIN_STATUS_FULL || ps_status == NETWORK_SERVICE_DOMAIN_STATUS_FULL) {
+       } else if (cs_status == NETWORK_SERVICE_DOMAIN_STATUS_EMERGENCY
+                       || ps_status == NETWORK_SERVICE_DOMAIN_STATUS_EMERGENCY) {
+               if (cs_status == NETWORK_SERVICE_DOMAIN_STATUS_FULL
+                               || ps_status == NETWORK_SERVICE_DOMAIN_STATUS_FULL) {
                        /* no change */
-               }
-               else {
+               } else {
                        ret = NETWORK_SERVICE_TYPE_EMERGENCY;
                }
        }
@@ -257,7 +263,7 @@ static gboolean on_notification_atmodem_cs_network_info(CoreObject *co_network,
                return TRUE;
        }
 
-       line = (gchar *) (lines->data);
+       line = (char *) (lines->data);
        if (line != NULL) {
                struct tnoti_network_registration_status registration_status = {0, };
                struct tnoti_network_location_cellinfo cell_info = {0, };
@@ -268,7 +274,7 @@ static gboolean on_notification_atmodem_cs_network_info(CoreObject *co_network,
                /*
                 * Tokenize
                 *
-                * +CREG: <stat>[,<lac>,<ci>[,<AcT>]]
+                * +CREG: <stat>[, <lac>, <ci>[, <AcT>]]
                 */
                tokens = tcore_at_tok_new(line);
                if (g_slist_length(tokens) < 1) {
@@ -286,14 +292,16 @@ static gboolean on_notification_atmodem_cs_network_info(CoreObject *co_network,
 
                /* <lac> */
                if ((token_str = g_slist_nth_data(tokens, 1))) {
-                       token_str = tcore_at_tok_extract((const gchar *)token_str);
-
-                       lac = (guint)strtol(token_str, NULL, ATMODEM_NETWORK_BASE_16);
+                       token_str = tcore_at_tok_extract((const char *)token_str);
+                       if (token_str != NULL) {
+                               lac = (guint)strtol(token_str, NULL, ATMODEM_NETWORK_BASE_16);
 
-                       /* Update Location Area Code (lac) information */
-                       (void)tcore_network_set_lac(co_network, lac);
-
-                       g_free(token_str);
+                               /* Update Location Area Code (lac) information */
+                               (void)tcore_network_set_lac(co_network, lac);
+                               g_free(token_str);
+                       } else {
+                               err("No <lac>");
+                       }
                } else {
                        dbg("No <lac> in +CREG");
                        (void)tcore_network_get_lac(co_network, &lac);
@@ -301,14 +309,15 @@ static gboolean on_notification_atmodem_cs_network_info(CoreObject *co_network,
 
                /* <ci> */
                if ((token_str = g_slist_nth_data(tokens, 2))) {
-                       token_str = tcore_at_tok_extract((const gchar *)token_str);
-
-                       ci = (guint)strtol(token_str, NULL, ATMODEM_NETWORK_BASE_16);
-
-                       /* Update Cell ID (ci) information */
-                       (void)tcore_network_set_cell_id(co_network, ci);
-
-                       g_free(token_str);
+                       token_str = tcore_at_tok_extract((const char *)token_str);
+                       if (token_str != NULL) {
+                               ci = (guint)strtol(token_str, NULL, ATMODEM_NETWORK_BASE_16);
+                               /* Update Cell ID (ci) information */
+                               (void)tcore_network_set_cell_id(co_network, ci);
+                               g_free(token_str);
+                       } else {
+                               err("No <ci>");
+                       }
                } else {
                        dbg("No <ci> in +CREG");
                        (void)tcore_network_get_cell_id(co_network, &ci);
@@ -327,7 +336,8 @@ static gboolean on_notification_atmodem_cs_network_info(CoreObject *co_network,
                /* Send Notification - Network (CS) Registration status */
                registration_status.cs_domain_status = stat;
 
-               tcore_network_get_service_status(co_network, TCORE_NETWORK_SERVICE_DOMAIN_TYPE_PACKET, &registration_status.ps_domain_status);
+               tcore_network_get_service_status(co_network,
+                       TCORE_NETWORK_SERVICE_DOMAIN_TYPE_PACKET, &registration_status.ps_domain_status);
 
                tcore_server_send_notification(tcore_plugin_ref_server(tcore_object_ref_plugin(co_network)),
                        co_network,
@@ -336,15 +346,16 @@ static gboolean on_notification_atmodem_cs_network_info(CoreObject *co_network,
 
 #if 0 /* TODO : Implement Roaming State */
                switch (stat) {
-                       case TEL_NETWORK_REG_STATUS_ROAMING:
-                               roam_state = TRUE; // no break
-                       case TEL_NETWORK_REG_STATUS_REGISTERED:
-                                Fetch Network name - Internal request
-                               (void)__atmodem_network_fetch_nw_name(co_network,
-                                       __on_response_atmodem_network_fetch_nw_name_internal, NULL);
-                               break;
-                       default:
-                               break;
+               case TEL_NETWORK_REG_STATUS_ROAMING:
+                       roam_state = TRUE; /* no break */
+               case TEL_NETWORK_REG_STATUS_REGISTERED:
+                        Fetch Network name - Internal request
+                       (void)__atmodem_network_fetch_nw_name(co_network,
+                               __on_response_atmodem_network_fetch_nw_name_internal, NULL);
+               break;
+
+               default:
+               break;
                }
 
                tcore_network_set_roaming_state(co_network, roam_state);
@@ -382,7 +393,7 @@ static gboolean on_notification_atmodem_ps_network_info(CoreObject *co_network,
                return TRUE;
        }
 
-       line = (gchar *) (lines->data);
+       line = (char *) (lines->data);
        if (line != NULL) {
                struct tnoti_network_registration_status registration_status = {0, };
                struct tnoti_network_location_cellinfo cell_info = {0, };
@@ -396,7 +407,7 @@ static gboolean on_notification_atmodem_ps_network_info(CoreObject *co_network,
                /*
                 * Tokenize
                 *
-                * +CGREG: <stat>[,<lac>,<ci>[,<AcT>,<rac>]]
+                * +CGREG: <stat>[, <lac>, <ci>[, <AcT>, <rac>]]
                 */
                tokens = tcore_at_tok_new(line);
                if (g_slist_length(tokens) < 1) {
@@ -414,14 +425,15 @@ static gboolean on_notification_atmodem_ps_network_info(CoreObject *co_network,
 
                /* <lac> */
                if ((token_str = g_slist_nth_data(tokens, 1))) {
-                       token_str = tcore_at_tok_extract((const gchar *)token_str);
-
-                       lac = (guint)strtol(token_str, NULL, ATMODEM_NETWORK_BASE_16);
-
-                       /* Update Location Area Code (lac) information */
-                       (void)tcore_network_set_lac(co_network, lac);
-
-                       g_free(token_str);
+                       token_str = tcore_at_tok_extract((const char *)token_str);
+                       if (token_str != NULL) {
+                               lac = (guint)strtol(token_str, NULL, ATMODEM_NETWORK_BASE_16);
+                               /* Update Location Area Code (lac) information */
+                               (void)tcore_network_set_lac(co_network, lac);
+                               g_free(token_str);
+                       } else {
+                               err("No <lac>");
+                       }
                } else {
                        dbg("No <lac> in +CGREG");
                        (void)tcore_network_get_lac(co_network, &lac);
@@ -429,14 +441,15 @@ static gboolean on_notification_atmodem_ps_network_info(CoreObject *co_network,
 
                /* <ci> */
                if ((token_str = g_slist_nth_data(tokens, 2))) {
-                       token_str = tcore_at_tok_extract((const gchar *)token_str);
-
-                       ci = (guint)strtol(token_str, NULL, ATMODEM_NETWORK_BASE_16);
-
-                       /* Update Cell ID (ci) information */
-                       (void)tcore_network_set_cell_id(co_network, ci);
-
-                       g_free(token_str);
+                       token_str = tcore_at_tok_extract((const char *)token_str);
+                       if (token_str != NULL) {
+                               ci = (guint)strtol(token_str, NULL, ATMODEM_NETWORK_BASE_16);
+                               /* Update Cell ID (ci) information */
+                               (void)tcore_network_set_cell_id(co_network, ci);
+                               g_free(token_str);
+                       } else {
+                               err("No <ci>");
+                       }
                } else {
                        dbg("No <ci> in +CGREG");
                        (void)tcore_network_get_cell_id(co_network, &ci);
@@ -453,16 +466,17 @@ static gboolean on_notification_atmodem_ps_network_info(CoreObject *co_network,
 
                /* <rac> */
                if ((token_str = g_slist_nth_data(tokens, 4))) {
-                       token_str = tcore_at_tok_extract((const gchar *)token_str);
-
-                       rac = (guint)strtol(token_str, NULL, ATMODEM_NETWORK_BASE_16);
-
-                       /* Update Routing Area Code (rac) information */
-                       (void)tcore_network_set_rac(co_network, rac);
-
-                       g_free(token_str);
+                       token_str = tcore_at_tok_extract((const char *)token_str);
+                       if (token_str != NULL) {
+                               rac = (guint)strtol(token_str, NULL, ATMODEM_NETWORK_BASE_16);
+                               /* Update Routing Area Code (rac) information */
+                               (void)tcore_network_set_rac(co_network, rac);
+                               g_free(token_str);
+                       } else {
+                               err("No <rac>");
+                       }
                } else {
-                       err("No <ci> in +CGREG");
+                       err("No <rac> in +CGREG");
                        (void)tcore_network_get_rac(co_network, &rac);
                }
                dbg("<stat>: %d <lac>: 0x%x <ci>: 0x%x <AcT>: %d <rac>: 0x%x", ps_status, lac, ci, act, rac);
@@ -526,12 +540,12 @@ static gboolean on_notification_atmodem_network_rssi(CoreObject *co_network,
                return TRUE;
        }
 
-       line = (const gchar *)lines->data;
+       line = (const char *)lines->data;
        if (line != NULL) {
                GSList *tokens;
                guint descriptor;
                guint value;
-               static struct tnoti_network_icon_info net_icon_info = {0xff,0,0,0};
+               static struct tnoti_network_icon_info net_icon_info = {0xff, 0, 0, 0};
 
                tokens = tcore_at_tok_new(line);
 
@@ -577,11 +591,10 @@ static void __on_response_atmodem_network_registration(TcorePending *p,
        const struct tcore_at_response *at_resp = data;
        dbg("Entry");
 
-       if (at_resp && at_resp->success) {
+       if (at_resp && at_resp->success)
                dbg("Network Registration - [OK]");
-       } else {
+       else
                err("Network Registration - [NOK]");
-       }
 }
 
 static void __atmodem_network_register_to_network(CoreObject *co_network)
@@ -605,6 +618,8 @@ static void on_sim_resp_hook_get_netname(UserRequest *ur, enum tcore_response_co
        const struct tresp_sim_read *resp = data;
        CoreObject *o = user_data;
        struct tnoti_network_registration_status regist_status;
+       struct tnoti_network_identity network_identity;
+       gchar *plmn = NULL;
 
        if (command == TRESP_SIM_GET_SPN) {
                dbg("OK SPN GETTING!!");
@@ -621,15 +636,14 @@ static void on_sim_resp_hook_get_netname(UserRequest *ur, enum tcore_response_co
                 *  bit[1]: 0 = display of the service provider name is required when registered PLMN is neither HPLMN nor a PLMN in the service provider PLMN list
                 *          1 = display of the service provider name is not required when registered PLMN is neither HPLMN nor a PLMN in the service provider PLMN list
                 */
-               if (resp->data.spn.display_condition & 0x01) {
+               if (resp->data.spn.display_condition & 0x01)
                        tcore_network_set_network_name_priority(o, TCORE_NETWORK_NAME_PRIORITY_NETWORK);
-               }
-               if ((resp->data.spn.display_condition & 0x02) == 0) {
+
+               if ((resp->data.spn.display_condition & 0x02) == 0)
                        tcore_network_set_network_name_priority(o, TCORE_NETWORK_NAME_PRIORITY_SPN);
-               }
-               if ((resp->data.spn.display_condition & 0x03) == 0x01) {
+
+               if ((resp->data.spn.display_condition & 0x03) == 0x01)
                        tcore_network_set_network_name_priority(o, TCORE_NETWORK_NAME_PRIORITY_ANY);
-               }
        }
 
        tcore_network_get_service_status(o, TCORE_NETWORK_SERVICE_DOMAIN_TYPE_CIRCUIT, &regist_status.cs_domain_status);
@@ -639,6 +653,22 @@ static void on_sim_resp_hook_get_netname(UserRequest *ur, enum tcore_response_co
 
        tcore_server_send_notification(tcore_plugin_ref_server(tcore_object_ref_plugin(o)), o,
                        TNOTI_NETWORK_REGISTRATION_STATUS, sizeof(struct tnoti_network_registration_status), &regist_status);
+
+       memset(&network_identity, 0x00, sizeof(struct tnoti_network_identity));
+
+       plmn = tcore_network_get_plmn(o);
+       if (plmn) {
+               dbg("plmn = %s", plmn);
+               g_strlcpy(network_identity.plmn, plmn, sizeof(network_identity.plmn));
+               g_free(plmn);
+       }
+       g_strlcpy(network_identity.short_name, "SDK", sizeof(network_identity.short_name));
+       g_strlcpy(network_identity.full_name, "SDK", sizeof(network_identity.full_name));
+
+       tcore_server_send_notification(tcore_plugin_ref_server(tcore_object_ref_plugin(o)),
+                                                               o,
+                                                               TNOTI_NETWORK_IDENTITY,
+                                                               sizeof(struct tnoti_network_identity), &network_identity);
 }
 
 /* Hooks */
@@ -712,8 +742,8 @@ static void on_response_network_search(TcorePending *p,
                        /* Status */
                        resp = tcore_at_tok_nth(net_token, 0);
                        if (resp != NULL) {
-                               nw_resp.list [count].status = atoi(resp);
-                               dbg("Status: [%d]", nw_resp.list [count].status);
+                               nw_resp.list[count].status = atoi(resp);
+                               dbg("Status: [%d]", nw_resp.list[count].status);
                        }
 
                        /* Name */
@@ -764,19 +794,19 @@ static void on_response_network_search(TcorePending *p,
 
                        dbg("[%d] Status: [%d] name: [%s] PLMN: [%s] AcT: [%d]",
                                        count,
-                                       nw_resp.list [count].status,
-                                       nw_resp.list [count].name,
-                                       nw_resp.list [count].plmn,
-                                       nw_resp.list [count].act);
+                                       nw_resp.list[count].status,
+                                       nw_resp.list[count].name,
+                                       nw_resp.list[count].plmn,
+                                       nw_resp.list[count].act);
 
                        tcore_at_tok_free(net_token);
                }
 
                nw_resp.result = TCORE_RETURN_SUCCESS;
-       }
-       else {
+       } else {
                err("RESPONSE NOK");
-               err("CME Error[%s]",(char *)(at_resp->lines ? at_resp->lines->data : "Unknown"));
+               if (at_resp)
+                       err("CME Error[%s]", (char *)(at_resp->lines ? at_resp->lines->data : "Unknown"));
        }
 
        ur = tcore_pending_ref_user_request(p);
@@ -784,8 +814,7 @@ static void on_response_network_search(TcorePending *p,
                tcore_user_request_send_response(ur,
                        TRESP_NETWORK_SEARCH,
                        sizeof(struct tresp_network_search), &nw_resp);
-       }
-       else {
+       } else {
                err("ur is NULL");
        }
 
@@ -806,7 +835,7 @@ static void on_response_network_get_plmn_selection_mode(TcorePending *p,
 
        dbg("Enter");
 
-       nw_resp.result = TCORE_RETURN_FAILURE; //TODO - CME Error mapping required.
+       nw_resp.result = TCORE_RETURN_FAILURE; /* TODO - CME Error mapping required. */
 
        if (at_resp && at_resp->success) {
                const gchar *line;
@@ -870,7 +899,7 @@ static void on_response_network_set_plmn_selection_mode(TcorePending *p,
                } else {
                        err("RESPONSE NOK");
                        if (at_resp->lines)
-                               err("CME Error[%s]",(char *)at_resp->lines->data);
+                               err("CME Error[%s]", (char *)at_resp->lines->data);
                                nw_resp.result = TCORE_RETURN_FAILURE;
                }
        } else {
@@ -918,18 +947,18 @@ static void on_response_network_get_serving_network(TcorePending *p,
                num_lines = g_slist_length(at_resp->lines);
                dbg("number of lines: %d", num_lines);
 
-               for(count = 0; count < num_lines; count++) {
+               for (count = 0; count < num_lines; count++) {
                        line = g_slist_nth_data(at_resp->lines, count);
                        tokens = tcore_at_tok_new(line);
-                       // mode
-                       if ((local_data = tcore_at_tok_nth(tokens, 0))) {
+                       /* mode */
+                       if ((local_data = tcore_at_tok_nth(tokens, 0)))
                                dbg("mode  : %s", local_data);
-                       }
-                       // format
-                       if ((local_data = tcore_at_tok_nth(tokens, 1))) {
+
+                       /* format */
+                       if ((local_data = tcore_at_tok_nth(tokens, 1)))
                                dbg("format  : %s", local_data);
-                       }
-                       //plmn
+
+                       /*plmn */
                        if ((plmn = tcore_at_tok_nth(tokens, 2))) {
                                dbg("plmn  : %s", plmn);
                                g_strlcpy(nw_resp.plmn, plmn, 6);
@@ -939,7 +968,8 @@ static void on_response_network_get_serving_network(TcorePending *p,
                                        tcore_network_set_network_name(co_network, TCORE_NETWORK_NAME_TYPE_FULL, "SDK");
                                }
                        }
-                       //act
+
+                       /* act */
                        if ((local_data = tcore_at_tok_nth(tokens, 3))) {
                                dbg("AcT  : %s", local_data);
                                act = lookup_tbl_access_technology[atoi(local_data)];
@@ -1008,7 +1038,7 @@ static TReturn set_plmn_selection_mode(CoreObject *co_network, UserRequest *ur)
 
        dbg("Entry");
 
-       mode_info = (struct treq_network_set_plmn_selection_mode*)tcore_user_request_ref_data( ur, 0 );
+       mode_info = (struct treq_network_set_plmn_selection_mode *)tcore_user_request_ref_data(ur, 0);
 
        if (mode_info->mode == NETWORK_SELECT_MODE_AUTOMATIC) {
                at_cmd = g_strdup_printf("AT+COPS=0");
@@ -1022,15 +1052,17 @@ static TReturn set_plmn_selection_mode(CoreObject *co_network, UserRequest *ur)
                case NETWORK_ACT_EGPRS:
                        act = 0;
                break;
+
                case NETWORK_ACT_UMTS:
                case NETWORK_ACT_GSM_UTRAN:
                        act = 2;
                break;
+
                default:
                        err("Unsupported AcT: [%d]", mode_info->act);
                        return ret;
                }
-               at_cmd = g_strdup_printf("AT+COPS=1,2,\"%s\",%d", mode_info->plmn, act);
+               at_cmd = g_strdup_printf("AT+COPS=1, 2, \"%s\", %d", mode_info->plmn, act);
        }
 
        /* Send Request to modem */
@@ -1083,6 +1115,61 @@ static TReturn get_serving_network(CoreObject *co_network, UserRequest *ur)
        return ret;
 }
 
+static TReturn get_default_subscription(CoreObject *co, UserRequest *ur)
+{
+       struct tresp_network_get_default_subs resp_data = {0, };
+       TReturn ret = TCORE_RETURN_FAILURE;
+       Server *server;
+       Storage *strg = NULL;
+       TcorePlugin *plugin = tcore_object_ref_plugin(co);
+
+       dbg("Enter");
+
+       server = tcore_plugin_ref_server(plugin);
+       strg = tcore_server_find_storage(server, "vconf");
+
+       /* VCONFKEY is aligned to req_data->current_network type */
+       resp_data.default_subs = tcore_storage_get_int(strg,
+                       STORAGE_KEY_TELEPHONY_DUALSIM_DEFAULT_SERVICE_INT);
+
+       resp_data.result = TCORE_RETURN_SUCCESS;
+
+       /* Send Response */
+       ret = tcore_user_request_send_response(ur,
+               TRESP_NETWORK_GET_DEFAULT_SUBSCRIPTION,
+               sizeof(struct tresp_network_get_default_subs), &resp_data);
+
+       dbg("ret: [0x%x]", ret);
+       return ret;
+}
+
+static TReturn get_default_data_subscription(CoreObject *co, UserRequest *ur)
+{
+       struct tresp_network_get_default_data_subs resp = {0, };
+       Server *server;
+       Storage *strg = NULL;
+       TcorePlugin *plugin = tcore_object_ref_plugin(co);
+       TReturn ret;
+
+       dbg("Enter");
+
+       server = tcore_plugin_ref_server(plugin);
+       strg = tcore_server_find_storage(server, "vconf");
+
+       resp.default_subs = tcore_storage_get_int(strg, STORAGE_KEY_TELEPHONY_DUALSIM_DEFAULT_DATA_SERVICE_INT);
+       dbg("Defualt data Subscription: [%d]", resp.default_subs);
+
+       resp.result = TCORE_RETURN_SUCCESS;
+
+       ret = tcore_user_request_send_response(ur,
+               TRESP_NETWORK_GET_DEFAULT_DATA_SUBSCRIPTION,
+               sizeof(struct tresp_network_get_default_data_subs), &resp);
+       if (TCORE_RETURN_SUCCESS ==  ret)
+               tcore_user_request_unref(ur);
+
+       return ret;
+}
+
 /** Network operations */
 static struct tcore_network_operations network_ops = {
        .search = search_network,
@@ -1100,6 +1187,8 @@ static struct tcore_network_operations network_ops = {
        .get_power_on_attach = NULL,
        .set_cancel_manual_search = NULL,
        .get_serving_network = get_serving_network,
+       .get_default_subscription = get_default_subscription,
+       .get_default_data_subscription = get_default_data_subscription,
 };
 
 gboolean s_network_init(TcorePlugin *p, TcoreHal *h)
index e4173559771f00823db828f98fd2a0ac00e4590e..b3f0d5a05b678baece14c9ddf1401dedca690a38 100644 (file)
@@ -185,7 +185,7 @@ static void __on_response_get_ipconfiguration(TcorePending *p,
                                                dbg("IP address: %s", ip);
                                        }
 
-                                       (void)tcore_context_set_address(ps_context, (const char*)pdp_address);
+                                       (void)tcore_context_set_address(ps_context, (const char *)pdp_address);
                                        g_free(pdp_address);
 
                                        dbg("Adding default DNS pri: 8.8.8.8 sec: 8.8.4.4");
@@ -204,7 +204,7 @@ static void __on_response_get_ipconfiguration(TcorePending *p,
                                }
                        }
                }
-       }else {
+       } else {
                err("Response NOK");
 
                context_id = tcore_context_get_id(ps_context);
@@ -229,7 +229,7 @@ static void __get_ipconfiguration(CoreObject *co_ps, CoreObject *ps_context)
                ps_context,
                on_send_at_request, NULL,
                0, NULL, NULL);
-       if (ret != TCORE_RETURN_SUCCESS){
+       if (ret != TCORE_RETURN_SUCCESS) {
                err("Failed to prepare and send AT request");
 
                /* Deactivate PDP context */
@@ -279,7 +279,7 @@ static void __attach_ps(CoreObject *co_ps, CoreObject *ps_context)
                __on_response_attach_ps, ps_context,
                on_send_at_request, NULL,
                0, NULL, NULL);
-       if (ret != TCORE_RETURN_SUCCESS){
+       if (ret != TCORE_RETURN_SUCCESS) {
                err("Failed to prepare and send AT request");
 
                /* Deactivate PDP context */
@@ -378,8 +378,8 @@ static void on_response_ps_define_context(TcorePending *p,
                dbg("Response OK");
                curr_call_status = 0;
                tcore_context_set_state(co_ps, CONTEXT_STATE_ACTIVATED);
-       }else {
-               err("ERROR[%s]",at_resp->final_response);
+       } else {
+               err("ERROR[%s]", at_resp->final_response);
                curr_call_status = 3;
        }
 
@@ -432,7 +432,7 @@ static TReturn activate_ps_context(CoreObject *o, CoreObject *ps_context, void*
                on_response_ps_activate_context, ps_context,
                on_send_at_request, NULL,
                0, NULL, NULL);
-       if (ret != TCORE_RETURN_SUCCESS){
+       if (ret != TCORE_RETURN_SUCCESS) {
                err("AT request failed. Send notification for call status [DISCONNECTED]");
 
                __notify_context_status_changed(o, context_id, 3);
@@ -486,7 +486,7 @@ static TReturn deactivate_ps_context(CoreObject *o, CoreObject *ps_context, void
                on_response_ps_deactivate_context, ps_context,
                on_send_at_request, NULL,
                0, NULL, NULL);
-       if (ret != TCORE_RETURN_SUCCESS){
+       if (ret != TCORE_RETURN_SUCCESS) {
                err("AT request failed. Send notification for call status [DISCONNECTED]");
                __notify_context_status_changed(o, context_id, 3);
        }
old mode 100755 (executable)
new mode 100644 (file)
index b6c0a9a..f147288
 
 
 #define ALLOC_METAINFO()       do { \
-       file_meta = g_malloc0(sizeof(sim_meta_info_t)); \
-       dbg("Allocated - file_meta: [%p]", file_meta); \
+       file_meta = g_try_malloc0(sizeof(sim_meta_info_t)); \
+       if (file_meta == NULL) { \
+               err("Memory allocation failed!!"); \
+               return TCORE_RETURN_ENOMEM; \
+       } \
 } while (0)
 
 #define FREE_METAINFO()        do { \
 }
 
 typedef enum {
-       SIM_FILE_TYPE_DEDICATED = 0x00, /**< Dedicated */
-       SIM_FILE_TYPE_TRANSPARENT = 0x01,       /**< Transparent -binary type*/
-       SIM_FILE_TYPE_LINEAR_FIXED = 0x02,      /**< Linear fixed - record type*/
-       SIM_FILE_TYPE_CYCLIC = 0x04,    /**< Cyclic - record type*/
-       SIM_FILE_TYPE_INVALID_TYPE = 0xFF       /**< Invalid type */
+       SIM_FILE_TYPE_DEDICATED = 0x00, /**< Dedicated */
+       SIM_FILE_TYPE_TRANSPARENT = 0x01, /**< Transparent -binary type*/
+       SIM_FILE_TYPE_LINEAR_FIXED = 0x02, /**< Linear fixed - record type*/
+       SIM_FILE_TYPE_CYCLIC = 0x04, /**< Cyclic - record type*/
+       SIM_FILE_TYPE_INVALID_TYPE = 0xFF /**< Invalid type */
 } sim_file_type_t;
 
 typedef enum {
@@ -83,7 +86,7 @@ typedef enum {
        SIM_CURR_SEC_OP_PIN1_ENABLE,
        SIM_CURR_SEC_OP_PIN1_DISABLE,
        SIM_CURR_SEC_OP_PIN2_ENABLE,
-       SIM_CURR_SEC_OP_PIN2_DISABLE, // 10
+       SIM_CURR_SEC_OP_PIN2_DISABLE, /* 10 */
        SIM_CURR_SEC_OP_SIM_ENABLE,
        SIM_CURR_SEC_OP_SIM_DISABLE,
        SIM_CURR_SEC_OP_NET_ENABLE,
@@ -93,7 +96,7 @@ typedef enum {
        SIM_CURR_SEC_OP_SP_ENABLE,
        SIM_CURR_SEC_OP_SP_DISABLE,
        SIM_CURR_SEC_OP_CP_ENABLE,
-       SIM_CURR_SEC_OP_CP_DISABLE, // 20
+       SIM_CURR_SEC_OP_CP_DISABLE, /* 20 */
        SIM_CURR_SEC_OP_FDN_ENABLE,
        SIM_CURR_SEC_OP_FDN_DISABLE,
        SIM_CURR_SEC_OP_PIN1_STATUS,
@@ -108,39 +111,41 @@ typedef enum {
 } sim_sec_op_t;
 
 typedef enum {
-       SEC_LOCK_TYPE_NONE =0,
-       SEC_LOCK_TYPE_READY,    /*  ME is not locked */
-       SEC_LOCK_TYPE_PS,               /* PH-SIM, Lock Phone to SIM/UICC card(MT asks password when other than current SIM/UICC card inserted; MT may remember certain amount of
-                                                         previously used cards thus not requiring password when they are inserted ) */
-       SEC_LOCK_TYPE_PF,       /*  PH-FSIM, Lock Phone to the very First  inserted SIM/UICC card ( MT asks password when other than the first SIM/UICC card is inserted ) */
-       SEC_LOCK_TYPE_SC,       /*Lock SIM/UICC card ( SIM asks password in ME power-up and when this command is issued ) */
-       SEC_LOCK_TYPE_FD,       /* SIM card or active application in the UICC(GSM or USIM) fixed dialing memory feature */
-       SEC_LOCK_TYPE_PN,               /*  Network Personalization */
-       SEC_LOCK_TYPE_PU,       /*  Network subset Personalization */
-       SEC_LOCK_TYPE_PP,       /*  Service Provider Personalization */
-       SEC_LOCK_TYPE_PC,       /*  Corporate Personalization */
-       SEC_LOCK_TYPE_SC2,      /*  Lock PIN2 ( ... ) */
-       SEC_LOCK_TYPE_PUK2,     /*  Lock PUK2 (... ) */
-       SEC_LOCK_TYPE_ACL,      /* ACL */
-
-       SEC_LOCK_TYPE_NO_SIM,           /* SIM is not inserted */
-       SEC_LOCK_TYPE_UNAVAIL,  /*  SIM is inserted but can not communicate with SIM ( SIM interface error ) */
-       SEC_SIM_INIT_COMPLETED, /*  SIM Initialize Completed */
-       SEC_PB_INIT_COMPLETED,  /*  Phonebook Initialize Completed*/
-       SEC_SIM_INIT_CRASH,             /*  SIM Crash request from SMC lab*/
+       SEC_LOCK_TYPE_NONE = 0,
+       SEC_LOCK_TYPE_READY, /*  ME is not locked */
+       SEC_LOCK_TYPE_PS, /* PH-SIM, Lock Phone to SIM/UICC card(MT asks password when
+                               other than current SIM/UICC card inserted; MT may remember
+                               certain amount of previously used cards thus not requiring
+                               password when they are inserted ) */
+       SEC_LOCK_TYPE_PF, /*  PH-FSIM, Lock Phone to the very First  inserted SIM/UICC card ( MT asks password when other than the first SIM/UICC card is inserted ) */
+       SEC_LOCK_TYPE_SC, /*Lock SIM/UICC card ( SIM asks password in ME power-up and when this command is issued ) */
+       SEC_LOCK_TYPE_FD, /* SIM card or active application in the UICC(GSM or USIM) fixed dialing memory feature */
+       SEC_LOCK_TYPE_PN, /*  Network Personalization */
+       SEC_LOCK_TYPE_PU, /*  Network subset Personalization */
+       SEC_LOCK_TYPE_PP, /*  Service Provider Personalization */
+       SEC_LOCK_TYPE_PC, /*  Corporate Personalization */
+       SEC_LOCK_TYPE_SC2, /*  Lock PIN2 ( ... ) */
+       SEC_LOCK_TYPE_PUK2, /*  Lock PUK2 (... ) */
+       SEC_LOCK_TYPE_ACL, /* ACL */
+
+       SEC_LOCK_TYPE_NO_SIM, /* SIM is not inserted */
+       SEC_LOCK_TYPE_UNAVAIL, /*  SIM is inserted but can not communicate with SIM ( SIM interface error ) */
+       SEC_SIM_INIT_COMPLETED, /*  SIM Initialize Completed */
+       SEC_PB_INIT_COMPLETED, /*  Phonebook Initialize Completed*/
+       SEC_SIM_INIT_CRASH, /*  SIM Crash request from SMC lab*/
 
        SEC_LOCK_TYPE_MAX
 } sim_sec_lock_type_t;
 
 typedef enum {
        SEC_LOCK_KEY_NONE,
-       SEC_LOCK_KEY_UNLOCKED,          /* Not necessary */
-       SEC_LOCK_KEY_PIN,               /* PIN required as a password */
-       SEC_LOCK_KEY_PUK,               /* 0PUK required as a password */
-       SEC_LOCK_KEY_PIN2,              /* PIN2 required as a password */
-       SEC_LOCK_KEY_PUK2,              /*  PUK2 required as a password */
-       SEC_LOCK_KEY_PERM_BLOCKED,    /* PIN Permanent Blocked */
-       SEC_LOCK_KEY_PIN2_DISABLE,     /* PIN2 Lock Disabled*/
+       SEC_LOCK_KEY_UNLOCKED, /* Not necessary */
+       SEC_LOCK_KEY_PIN, /* PIN required as a password */
+       SEC_LOCK_KEY_PUK, /* 0PUK required as a password */
+       SEC_LOCK_KEY_PIN2, /* PIN2 required as a password */
+       SEC_LOCK_KEY_PUK2, /*  PUK2 required as a password */
+       SEC_LOCK_KEY_PERM_BLOCKED, /* PIN Permanent Blocked */
+       SEC_LOCK_KEY_PIN2_DISABLE, /* PIN2 Lock Disabled*/
        SEC_LOCK_KEY_MAX
 } sim_sec_lock_key_t;
 
@@ -150,25 +155,23 @@ typedef struct {
 } sim_private_info_t;
 
 typedef struct {
-       gboolean b_valid;                                       /**< Valid or not */
-       guint rec_length;                                       /**< Length of one record in file */
-       guint rec_count;                                        /**< Number of records in file */
-       guint data_size;                                        /**< File size */
-       guint current_index;                                    /**< Current index to read */
-       sim_file_type_t file_type;                              /**< File type and structure */
-//     sim_sec_op_t sec_op;                                    /**< Current index to read */
-       struct tel_sim_mbi_list mbi_list;                               /**< Mailbox List */
-       struct tel_sim_mb_number mb_list[SIM_MSP_CNT_MAX*5];    /**< Mailbox number */
-       enum tel_sim_file_id file_id;                                   /**< Current file id */
-       TReturn file_result;                            /**< File access result */
-       struct tresp_sim_read files;                                    /**< File read data */
-       enum tcore_request_command req_command;                         /**< Request command Id */
-       struct tel_sim_imsi imsi;                                       /**< Stored locally as of now,
-                                                                         Need to store in secure storage*/
+       gboolean b_valid; /**< Valid or not */
+       guint rec_length; /**< Length of one record in file */
+       guint rec_count; /**< Number of records in file */
+       guint data_size; /**< File size */
+       guint current_index; /**< Current index to read */
+       sim_file_type_t file_type; /**< File type and structure */
+       struct tel_sim_mbi_list mbi_list; /**< Mailbox List */
+       struct tel_sim_mb_number mb_list[SIM_MSP_CNT_MAX * 5]; /**< Mailbox number */
+       enum tel_sim_file_id file_id; /**< Current file id */
+       TReturn file_result; /**< File access result */
+       struct tresp_sim_read files; /**< File read data */
+       enum tcore_request_command req_command; /**< Request command Id */
+       struct tel_sim_imsi imsi; /**< Stored locally as of now,
+                               Need to store in secure storage*/
 } sim_meta_info_t;
 
 /* Request Function Declaration */
-//static TReturn __sim_get_imsi(CoreObject *co_sim, UserRequest *ur);
 static TReturn __sim_get_ecc(CoreObject *co_sim, UserRequest *ur);
 static TReturn __sim_get_spdi(CoreObject *co_sim, UserRequest *ur);
 static TReturn __sim_get_spn(CoreObject *co_sim, UserRequest *ur);
@@ -188,9 +191,8 @@ static TReturn __sim_decode_status_word(unsigned short status_word1, unsigned sh
 static void __sim_update_sim_status(CoreObject *co_sim, enum tel_sim_status sim_status);
 static void __sim_get_sim_type(CoreObject *co_sim);
 static const char *__sim_get_fac_from_lock_type(enum tel_sim_facility_type lock_type);
-//static int __sim_get_lock_type(sim_sec_op_t sec_op);
-static gboolean __convert_scpin_str_to_enum(char* line,
-       sim_sec_lock_type_t* lock_type, sim_sec_lock_key_t* lock_key);
+static gboolean __convert_scpin_str_to_enum(char *line,
+       sim_sec_lock_type_t *lock_type, sim_sec_lock_key_t *lock_key);
 
 /* Internal Response Functions*/
 static void __sim_next_from_read_data(CoreObject *co_sim, UserRequest *ur,
@@ -211,7 +213,11 @@ static gboolean __util_hexstring_to_bytes(gchar *hex_str,
 #define SIM_READ_FILE(co_sim, cb, cb_data, fileId, ret)        do { \
        sim_meta_info_t *file_meta = {0, }; \
        \
-       ALLOC_METAINFO(); \
+       file_meta = g_try_malloc0(sizeof(sim_meta_info_t)); \
+       if (file_meta == NULL) { \
+               err("Memory allocation failed!!"); \
+               return; \
+       } \
        file_meta->file_id = fileId; \
        file_meta->file_result = SIM_ACCESS_FAILED; \
        \
@@ -244,8 +250,11 @@ static gboolean __util_hexstring_to_bytes(gchar *hex_str,
 
        hex_str_len = strlen(hex_str);
 
-       byte_str = g_malloc0((hex_str_len / 2) + 1);
-
+       byte_str = g_try_malloc0((hex_str_len / 2) + 1);
+       if (byte_str == NULL) {
+               err("Memory allocation failed!!");
+               return FALSE;
+       }
        dbg("Convert String to Binary!!!");
        for (i = 0; i < hex_str_len; i += 2) {
                byte_str[i / 2] = (gchar)((__util_hexchar_to_int(hex_str[i]) << 4)
@@ -361,35 +370,6 @@ static enum tcore_response_command __find_resp_command(UserRequest *ur)
        return TRESP_UNKNOWN;
 }
 
-#if 0
-static void __sim_set_identity(CoreObject *co_sim, struct tel_sim_imsi *imsi)
-{
-       gchar new_imsi[15 + 1] = {0, };
-       gchar *old_imsi;
-
-       memcpy(&new_imsi, imsi->mcc, strlen(imsi->mcc));
-       memcpy(&new_imsi[strlen(imsi->mcc)], imsi->mnc, strlen(imsi->mnc));
-       memcpy(&new_imsi[strlen(imsi->mcc) + strlen(imsi->mnc)], imsi->msin, strlen(imsi->msin));
-
-       /* TODO: This is temporary code, we should use secure storage instead of vconf */
-       old_imsi = vconf_get_str("db/telephony/imsi");
-       if (old_imsi) {
-               if (g_strcmp0(old_imsi, new_imsi) != 0) {
-                       dbg("New SIM");
-                       vconf_set_str("db/telephony/imsi", new_imsi);
-                       tcore_sim_set_identification(co_sim, TRUE);
-               } else {
-                       dbg("Same SIM");
-                       tcore_sim_set_identification(co_sim, FALSE);
-               }
-       } else {
-               dbg("Old IMSI value is NULL, set IMSI");
-               vconf_set_str("db/telephony/imsi", new_imsi);
-               tcore_sim_set_identification(co_sim, TRUE);
-       }
-}
-#endif
-
 /* Utility Functions */
 static TReturn __sim_decode_status_word(unsigned short status_word1,
        unsigned short status_word2)
@@ -477,10 +457,10 @@ static TReturn __sim_decode_status_word(unsigned short status_word1,
                rst = SIM_ACCESS_FAILED;
                dbg("error -Incorrect parameters [%x][%x]", status_word1, status_word2);
        } else if (status_word1 == 0x6A && status_word2 == 0x82) {
-               rst = SIM_ACCESS_FILE_NOT_FOUND; // not sure of the SW1 and SW2 meaning here
+               rst = SIM_ACCESS_FILE_NOT_FOUND; /* not sure of the SW1 and SW2 meaning here */
                dbg("error -File Not found [%x][%x]", status_word1, status_word2);
        } else if (status_word1 == 0x6A && status_word2 == 0x83) {
-               rst = SIM_ACCESS_FILE_NOT_FOUND; // not sure of the SW1 and SW2 meaning here
+               rst = SIM_ACCESS_FILE_NOT_FOUND; /* not sure of the SW1 and SW2 meaning here */
                dbg("error -Record Not found [%x][%x]", status_word1, status_word2);
        } else {
                rst = SIM_ACCESS_CARD_ERROR;
@@ -519,13 +499,13 @@ static void __sim_update_sim_status(CoreObject *co_sim,
        }
 }
 
-static gboolean __convert_scpin_str_to_enum(charline,
+static gboolean __convert_scpin_str_to_enum(char *line,
                sim_sec_lock_type_t *lock_type, sim_sec_lock_key_t *lock_key)
 {
-       char *type =NULL, *key = NULL;
+       char *type = NULL, *key = NULL;
        GSList *tokens = NULL;
 
-       if(line == NULL)
+       if (line == NULL)
                return FALSE;
 
        tokens = tcore_at_tok_new(line);
@@ -548,63 +528,63 @@ static gboolean __convert_scpin_str_to_enum(char* line,
                dbg("type: [%s], key: [%s]", type, key);
        }
 
-       if(g_str_has_prefix (type, "NO_SIM"))
+       if (g_str_has_prefix(type, "NO_SIM"))
                *lock_type = SEC_LOCK_TYPE_NO_SIM;
-       else if(g_str_has_prefix (type, "UNAVAIL"))
+       else if (g_str_has_prefix(type, "UNAVAIL"))
                *lock_type = SEC_LOCK_TYPE_UNAVAIL;
-       else if(g_str_has_prefix (type, "NO_LOCK"))
+       else if (g_str_has_prefix(type, "NO_LOCK"))
                *lock_type =  SEC_LOCK_TYPE_READY;
-       else if(g_str_has_prefix (type, "LOCK_PS"))
+       else if (g_str_has_prefix(type, "LOCK_PS"))
                *lock_type =  SEC_LOCK_TYPE_PS;
-       else if(g_str_has_prefix (type, "LOCK_PF"))
-               *lock_type = SEC_LOCK_TYPE_PF ;
-       else if(g_str_has_prefix (type, "LOCK_SC"))
+       else if (g_str_has_prefix(type, "LOCK_PF"))
+               *lock_type = SEC_LOCK_TYPE_PF;
+       else if (g_str_has_prefix(type, "LOCK_SC"))
                *lock_type =  SEC_LOCK_TYPE_SC;
-       else if(g_str_has_prefix (type, "LOCK_FD"))
+       else if (g_str_has_prefix(type, "LOCK_FD"))
                *lock_type =  SEC_LOCK_TYPE_FD;
-       else if(g_str_has_prefix (type, "LOCK_PN"))
-               *lock_type = SEC_LOCK_TYPE_PN ;
-       else if(g_str_has_prefix (type, "LOCK_PU"))
-               *lock_type = SEC_LOCK_TYPE_PU ;
-       else if(g_str_has_prefix (type, "LOCK_PP"))
+       else if (g_str_has_prefix(type, "LOCK_PN"))
+               *lock_type = SEC_LOCK_TYPE_PN;
+       else if (g_str_has_prefix(type, "LOCK_PU"))
+               *lock_type = SEC_LOCK_TYPE_PU;
+       else if (g_str_has_prefix(type, "LOCK_PP"))
                *lock_type =  SEC_LOCK_TYPE_PP;
-       else if(g_str_has_prefix (type, "LOCK_PC"))
+       else if (g_str_has_prefix(type, "LOCK_PC"))
                *lock_type =  SEC_LOCK_TYPE_PC;
-       else if(g_str_has_prefix (type, "LOCK_SC2"))
-               *lock_type = SEC_LOCK_TYPE_SC2 ;
-       else if(g_str_has_prefix (type, "LOCK_ACL"))
+       else if (g_str_has_prefix(type, "LOCK_SC2"))
+               *lock_type = SEC_LOCK_TYPE_SC2;
+       else if (g_str_has_prefix(type, "LOCK_ACL"))
                *lock_type = SEC_LOCK_TYPE_ACL;
-       else if(g_str_has_prefix (type, "LOCK_PUK2"))
+       else if (g_str_has_prefix(type, "LOCK_PUK2"))
                *lock_type = SEC_LOCK_TYPE_PUK2;
-       else if(g_str_has_prefix (type, "INIT_COMP"))
+       else if (g_str_has_prefix(type, "INIT_COMP"))
                *lock_type = SEC_SIM_INIT_COMPLETED;
-       else if(g_str_has_prefix (type, "INIT_ERROR"))
+       else if (g_str_has_prefix(type, "INIT_ERROR"))
                *lock_type = SEC_SIM_INIT_CRASH;
        else
                *lock_type = SEC_LOCK_TYPE_NONE;
 
-       if(g_str_has_prefix (key, "PIN"))
+       if (g_str_has_prefix(key, "PIN"))
                *lock_key = SEC_LOCK_KEY_PIN;
-       else if(g_str_has_prefix (key, "PUK"))
+       else if (g_str_has_prefix(key, "PUK"))
                *lock_key = SEC_LOCK_KEY_PUK;
-       else if(g_str_has_prefix (key, "PIN2"))
+       else if (g_str_has_prefix(key, "PIN2"))
                *lock_key =  SEC_LOCK_KEY_PIN2;
-       else if(g_str_has_prefix (key, "PUK2"))
+       else if (g_str_has_prefix(key, "PUK2"))
                *lock_key =  SEC_LOCK_KEY_PUK2;
-       else if(g_str_has_prefix (key, "BLOCKED"))
-               *lock_key = SEC_LOCK_KEY_PERM_BLOCKED ;
-       else if(g_str_has_prefix (key, "UNLOCKED"))
-               *lock_key = SEC_LOCK_KEY_UNLOCKED ;
-       else if(g_str_has_prefix (key, "PIN2_DISABLE"))
+       else if (g_str_has_prefix(key, "BLOCKED"))
+               *lock_key = SEC_LOCK_KEY_PERM_BLOCKED;
+       else if (g_str_has_prefix(key, "UNLOCKED"))
+               *lock_key = SEC_LOCK_KEY_UNLOCKED;
+       else if (g_str_has_prefix(key, "PIN2_DISABLE"))
                *lock_key =  SEC_LOCK_KEY_PIN2_DISABLE;
        else
                *lock_key = SEC_LOCK_KEY_NONE;
 
-       if(*lock_type ==  SEC_LOCK_TYPE_READY)
+       if (*lock_type ==  SEC_LOCK_TYPE_READY)
                *lock_key = SEC_LOCK_KEY_UNLOCKED;
 
-       if((*lock_type == SEC_LOCK_TYPE_NO_SIM)||(*lock_type == SEC_LOCK_TYPE_UNAVAIL)||
-                       (*lock_type == SEC_SIM_INIT_COMPLETED)||(*lock_type == SEC_SIM_INIT_CRASH))
+       if ((*lock_type == SEC_LOCK_TYPE_NO_SIM) || (*lock_type == SEC_LOCK_TYPE_UNAVAIL) ||
+                       (*lock_type == SEC_SIM_INIT_COMPLETED) || (*lock_type == SEC_SIM_INIT_CRASH))
                *lock_key = SEC_LOCK_KEY_NONE;
 
        dbg("type: [%d], key: [%d]", *lock_type, *lock_key);
@@ -647,8 +627,11 @@ static void __on_response_sim_get_sim_type(TcorePending *p,
 
                                /* Update SIM type */
                                tcore_sim_set_type(co_sim, sim_type);
-                       }
-                       else {
+                               if (sim_type == 1)
+                                       tcore_sim_set_app_list(co_sim, SIM_APP_TYPE_SIM);
+                               else if (sim_type == 2)
+                                       tcore_sim_set_app_list(co_sim, SIM_APP_TYPE_USIM);
+                       } else {
                                err("Invalid message");
                        }
 
@@ -738,7 +721,7 @@ static void __sim_process_sim_status(CoreObject *co_sim,
 static const char *__sim_get_fac_from_lock_type(enum tel_sim_facility_type lock_type)
 {
        char *fac = NULL;
-       switch(lock_type) {
+       switch (lock_type) {
        case SIM_FACILITY_PS:
                fac = (char *)"PS";
        break;
@@ -974,12 +957,6 @@ static void __sim_next_from_read_data(CoreObject *co_sim, UserRequest *ur,
        case SIM_EF_CPHS_OPERATOR_NAME_STRING:
        {
                file_meta->files.result = sim_result;
-               if (decode_ret == TRUE && sim_result == SIM_ACCESS_SUCCESS) {
-                       memcpy(file_meta->files.data.cphs_net.full_name,
-                               file_meta->files.data.cphs_net.full_name,
-                               strlen((char *)file_meta->files.data.cphs_net.full_name));
-               }
-
                file_meta->file_id = SIM_EF_CPHS_OPERATOR_NAME_SHORT_FORM_STRING;
                file_meta->file_result = SIM_ACCESS_FAILED;
                ur = tcore_user_request_ref(ur);
@@ -988,10 +965,6 @@ static void __sim_next_from_read_data(CoreObject *co_sim, UserRequest *ur,
        break;
 
        case SIM_EF_CPHS_OPERATOR_NAME_SHORT_FORM_STRING:
-               if (sim_result == SIM_ACCESS_SUCCESS) {
-                       file_meta->files.result = SIM_ACCESS_SUCCESS;
-               }
-
                dbg("Sending response");
 
                file_meta->files.result = sim_result;
@@ -1093,7 +1066,7 @@ static void __sim_next_from_get_response(CoreObject *co_sim, UserRequest *ur,
                                __sim_get_response(co_sim, ur, file_meta);
                        } else if (SIM_TYPE_USIM == card_type) {
                                dbg(" [SIM DATA]fail to get Language information "\
-                                       "in USIM(EF-LI(6F05),EF-PL(2F05))");
+                                       "in USIM(EF-LI(6F05), EF-PL(2F05))");
 
                                file_meta->files.result = sim_result;
                                tcore_user_request_send_response(ur,
@@ -1198,13 +1171,12 @@ static void __sim_next_from_get_response(CoreObject *co_sim, UserRequest *ur,
                if (sim_result == SIM_ACCESS_SUCCESS) {
                        __sim_read_binary(co_sim, ur, file_meta);
                } else {
-               /* Emulator does not support ICCID, thus need to send dummy ICCID for SDK ITC test */
+                       /* Emulator does not support ICCID, thus need to send dummy ICCID for SDK ITC test */
                        g_strlcpy(file_meta->files.data.iccid.iccid, SIM_ICCID, SIM_ICCID_LEN_MAX);
                        file_meta->files.result = SIM_ACCESS_SUCCESS;
-                       if (tcore_user_request_ref_communicator(ur)) {  //external call
+                       if (tcore_user_request_ref_communicator(ur)) /* external call */
                                 tcore_user_request_send_response(ur, __find_resp_command(ur),
                                                        sizeof(struct tresp_sim_read), &file_meta->files);
-                        }
                }
        }
        break;
@@ -1267,10 +1239,9 @@ static void __sim_next_from_get_response(CoreObject *co_sim, UserRequest *ur,
                /* Emulator does not support MSISDN, thus need to send MSISDN count as ZERO for SDK ITC test */
                        file_meta->files.data.msisdn_list.count = 0;
                        file_meta->files.result = SIM_ACCESS_SUCCESS;
-                       if (tcore_user_request_ref_communicator(ur)) {  //external call
+                       if (tcore_user_request_ref_communicator(ur)) /* external call */
                                 tcore_user_request_send_response(ur, __find_resp_command(ur),
                                                        sizeof(struct tresp_sim_read), &file_meta->files);
-                        }
                }
        }
        break;
@@ -1360,10 +1331,10 @@ static void __on_response_sim_read_data(TcorePending *p,
                                if (dr == FALSE) {
                                        err("IMSI decoding failed");
                                } else {
-                                       //__sim_set_identity(co_sim, &file_meta->imsi);
-
                                        /* Update IMSI */
                                        tcore_sim_set_imsi(co_sim, &file_meta->imsi);
+                                       /* SIM is not changed in SDK */
+                                       tcore_sim_set_identification(co_sim, FALSE);
                                }
                        }
                        break;
@@ -1377,8 +1348,7 @@ static void __on_response_sim_read_data(TcorePending *p,
                        case SIM_EF_ELP:                /* 2G EF - 2 bytes decoding */
                        case SIM_EF_USIM_LI:    /* 3G EF - 2 bytes decoding */
                        case SIM_EF_USIM_PL:    /* 3G EF - same as EFELP, so 2 byte decoding */
-                       case SIM_EF_LP:                 /* 1 byte encoding */
-                       {
+                       case SIM_EF_LP: {       /* 1 byte encoding */
                                card_type = tcore_sim_get_type(co_sim);
                                if ((SIM_TYPE_GSM == card_type)
                                                && (file_meta->file_id == SIM_EF_LP)) {
@@ -1415,21 +1385,19 @@ static void __on_response_sim_read_data(TcorePending *p,
 
                                card_type = tcore_sim_get_type(co_sim);
                                file_meta->files.data.svct.sim_type = card_type;
-                               if (SIM_TYPE_GSM == card_type) {
+                               if (SIM_TYPE_GSM == card_type)
                                        dr = tcore_sim_decode_sst(&file_meta->files.data.svct.table.sst,
                                                (unsigned char *)res, res_len);
-                               } else if (SIM_TYPE_USIM == card_type) {
+                               else if (SIM_TYPE_USIM == card_type)
                                        dr = tcore_sim_decode_ust(&file_meta->files.data.svct.table.ust,
                                                (unsigned char *)res, res_len);
-                               } else {
+                               else
                                        err("Not handled card_type[%d]", card_type);
-                               }
 
-                               if (dr == FALSE) {
+                               if (dr == FALSE)
                                        err("SST decoding failed");
-                               } else {
+                               else
                                        tcore_sim_set_service_table(co_sim, svct);
-                               }
 
                                /* Free memory */
                                g_free(svct);
@@ -1608,9 +1576,9 @@ static void __on_response_sim_read_data(TcorePending *p,
                        break;
 
                        case SIM_EF_CPHS_OPERATOR_NAME_STRING:
-                               dr = tcore_sim_decode_ons((unsigned char*)&file_meta->files.data.cphs_net.full_name,
+                               dr = tcore_sim_decode_ons((unsigned char *)&file_meta->files.data.cphs_net.full_name,
                                        (unsigned char *)res, res_len);
-                               dbg("file_meta->files.result[%d],file_meta->files.data.cphs_net.full_name[%s]",
+                               dbg("file_meta->files.result[%d], file_meta->files.data.cphs_net.full_name[%s]",
                                        file_meta->files.result, file_meta->files.data.cphs_net.full_name);
                        break;
 
@@ -1630,9 +1598,9 @@ static void __on_response_sim_read_data(TcorePending *p,
                        break;
 
                        case SIM_EF_CPHS_OPERATOR_NAME_SHORT_FORM_STRING:
-                               dr = tcore_sim_decode_short_ons((unsigned char*)&file_meta->files.data.cphs_net.short_name,
+                               dr = tcore_sim_decode_short_ons((unsigned char *)&file_meta->files.data.cphs_net.short_name,
                                        (unsigned char *)res, res_len);
-                               dbg("file_meta->files.result[%d],file_meta->files.data.cphs_net.short_name[%s]",
+                               dbg("file_meta->files.result[%d], file_meta->files.data.cphs_net.short_name[%s]",
                                        file_meta->files.result, file_meta->files.data.cphs_net.short_name);
                        break;
 
@@ -1773,13 +1741,13 @@ static void __on_response_sim_get_response(TcorePending *p,
 
                                                switch (file_type_tag) {
                                                /* increment to next byte */
-                                               // ptr_data++;
                                                case 0x1:
                                                        dbg("Getting FileType: [Transparent file type]");
                                                        file_type = SIM_FILE_TYPE_TRANSPARENT;
 
                                                        /* increment to next byte */
                                                        ptr_data++;
+
                                                        /* increment to next byte */
                                                        ptr_data++;
                                                break;
@@ -1788,14 +1756,18 @@ static void __on_response_sim_get_response(TcorePending *p,
                                                        dbg("Getting FileType: [Linear fixed file type]");
                                                        /* increment to next byte */
                                                        ptr_data++;
+
                                                        /* data coding byte - value 21 */
                                                        ptr_data++;
+
                                                        /* 2bytes */
                                                        memcpy(&record_len, ptr_data, 2);
+
                                                        /* swap bytes */
                                                        SWAP_BYTES_16(record_len);
                                                        ptr_data = ptr_data + 2;
                                                        num_of_records = *ptr_data++;
+
                                                        /* Data lossy conversation from enum (int) to unsigned char */
                                                        file_type = SIM_FILE_TYPE_LINEAR_FIXED;
                                                break;
@@ -1804,10 +1776,13 @@ static void __on_response_sim_get_response(TcorePending *p,
                                                        dbg("Cyclic fixed file type");
                                                        /* increment to next byte */
                                                        ptr_data++;
+
                                                        /* data coding byte - value 21 */
                                                        ptr_data++;
+
                                                        /* 2bytes */
                                                        memcpy(&record_len, ptr_data, 2);
+
                                                        /* swap bytes */
                                                        SWAP_BYTES_16(record_len);
                                                        ptr_data = ptr_data + 2;
@@ -1826,7 +1801,7 @@ static void __on_response_sim_get_response(TcorePending *p,
                                                return;
                                        }
 
-                                       /*File identifier - 0x84,0x85,0x86 etc are currently ignored and not handled */
+                                       /*File identifier - 0x84, 0x85, 0x86 etc are currently ignored and not handled */
                                        if (*ptr_data == 0x83) {
                                                /* increment to next byte */
                                                ptr_data++;
@@ -1836,7 +1811,7 @@ static void __on_response_sim_get_response(TcorePending *p,
                                                memcpy(&file_id, ptr_data, file_id_len);
                                                dbg("file_id: %x", file_id);
 
-                                               /* swap bytes    */
+                                               /* swap bytes */
                                                SWAP_BYTES_16(file_id);
                                                dbg("file_id: %x", file_id);
 
@@ -1867,15 +1842,15 @@ static void __on_response_sim_get_response(TcorePending *p,
 
                                        /* life cycle status integer [8A][length:0x01][status]*/
                                        /*
-                                        status info b8~b1
-                                        00000000 : No information given
-                                        00000001 : creation state
-                                        00000011 : initialization state
-                                        000001-1 : operation state -activated
-                                        000001-0 : operation state -deactivated
-                                        000011-- : Termination state
-                                        b8~b5 !=0, b4~b1=X : Proprietary
-                                        Any other value : RFU
+                                        status info b8~b1
+                                        00000000 : No information given
+                                        00000001 : creation state
+                                        00000011 : initialization state
+                                        000001-1 : operation state -activated
+                                        000001-0 : operation state -deactivated
+                                        000011-- : Termination state
+                                        b8~b5 !=0, b4~b1=X : Proprietary
+                                        Any other value : RFU
                                         */
                                        if (*ptr_data == 0x8A) {
                                                /* increment to next byte */
@@ -1921,7 +1896,6 @@ static void __on_response_sim_get_response(TcorePending *p,
                                                } else {
                                                        /* if tag length is not 3 */
                                                        /* ignoring bytes       */
-                                                       // ptr_data = ptr_data + 4;
                                                        dbg("Useless security attributes, so jump to next tag");
                                                        ptr_data = ptr_data + (*ptr_data + 1);
                                                }
@@ -1984,18 +1958,22 @@ static void __on_response_sim_get_response(TcorePending *p,
                                /* ignore RFU byte1 and byte2 */
                                ptr_data++;
                                ptr_data++;
+
                                /* file size */
-                               // file_size = p_info->response_len;
                                memcpy(&file_size, ptr_data, 2);
+
                                /* swap bytes */
                                SWAP_BYTES_16(file_size);
+
                                /* parsed file size */
                                ptr_data = ptr_data + 2;
+
                                /* file id */
                                memcpy(&file_id, ptr_data, 2);
                                SWAP_BYTES_16(file_id);
                                dbg("FILE id --> [%x]", file_id);
                                ptr_data = ptr_data + 2;
+
                                /* save file type - transparent, linear fixed or cyclic */
                                file_type_tag = (*(ptr_data + 7));
 
@@ -2008,7 +1986,7 @@ static void __on_response_sim_get_response(TcorePending *p,
                                case 0x1:
                                        /* MF file type */
                                        dbg("MF file type - not handled - Debug!");
-                                       break;
+                               break;
 
                                case 0x2:
                                        /* DF file type */
@@ -2029,24 +2007,32 @@ static void __on_response_sim_get_response(TcorePending *p,
                                        } else {
                                                /* increment to next byte */
                                                ptr_data++;
+
                                                /* For a cyclic EF all bits except bit 7 are RFU; b7=1 indicates that */
                                                /* the INCREASE command is allowed on the selected cyclic file. */
                                                file_type = SIM_FILE_TYPE_CYCLIC;
                                        }
+
                                        /* bytes 9 to 11 give SIM file access conditions */
                                        ptr_data++;
+
                                        /* byte 10 has one nibble that is RF U and another for INCREASE which is not used currently */
                                        ptr_data++;
+
                                        /* byte 11 is invalidate and rehabilate nibbles */
                                        ptr_data++;
+
                                        /* byte 12 - file status */
                                        ptr_data++;
+
                                        /* byte 13 - GSM specific data */
                                        gsm_specific_file_data_len = *ptr_data;
                                        dbg("gsm_specific_file_data_len:[%d]", gsm_specific_file_data_len);
                                        ptr_data++;
+
                                        /* byte 14 - structure of EF - transparent or linear or cyclic , already saved above */
                                        ptr_data++;
+
                                        /* byte 15 - length of record for linear and cyclic , for transparent it is set to 0x00. */
                                        record_len = *ptr_data;
                                        dbg("record length[%d], file size[%d]", record_len, file_size);
@@ -2194,38 +2180,45 @@ static TReturn __sim_get_response(CoreObject *co_sim, UserRequest *ur, sim_meta_
 #if 0  /* To be used later */
 static int __sim_get_lock_type(sim_sec_op_t sec_op)
 {
-       switch(sec_op) {
-               case SIM_CURR_SEC_OP_SIM_DISABLE :
-               case SIM_CURR_SEC_OP_SIM_ENABLE :
-               case SIM_CURR_SEC_OP_SIM_STATUS :
-                       return SIM_FACILITY_PS;
-               case SIM_CURR_SEC_OP_PIN1_DISABLE :
-               case SIM_CURR_SEC_OP_PIN1_ENABLE :
-               case SIM_CURR_SEC_OP_PIN1_STATUS :
-                       return SIM_FACILITY_SC;
-               case SIM_CURR_SEC_OP_FDN_DISABLE :
-               case SIM_CURR_SEC_OP_FDN_ENABLE :
-               case SIM_CURR_SEC_OP_FDN_STATUS :
-                       return SIM_FACILITY_FD;
-               case SIM_CURR_SEC_OP_NET_DISABLE :
-               case SIM_CURR_SEC_OP_NET_ENABLE :
-               case SIM_CURR_SEC_OP_NET_STATUS :
-                       return SIM_FACILITY_PN;
-               case SIM_CURR_SEC_OP_NS_DISABLE :
-               case SIM_CURR_SEC_OP_NS_ENABLE :
-               case SIM_CURR_SEC_OP_NS_STATUS :
-                       return SIM_FACILITY_PU;
-               case SIM_CURR_SEC_OP_SP_DISABLE :
-               case SIM_CURR_SEC_OP_SP_ENABLE :
-               case SIM_CURR_SEC_OP_SP_STATUS :
-                       return SIM_FACILITY_PP;
-               case SIM_CURR_SEC_OP_CP_DISABLE :
-               case SIM_CURR_SEC_OP_CP_ENABLE :
-               case SIM_CURR_SEC_OP_CP_STATUS :
-                       return SIM_FACILITY_PC ;
-               default :
-                       err("Invalid sec op [%d]", sec_op);
-                       return -1;
+       switch (sec_op) {
+       case SIM_CURR_SEC_OP_SIM_DISABLE:
+       case SIM_CURR_SEC_OP_SIM_ENABLE:
+       case SIM_CURR_SEC_OP_SIM_STATUS:
+               return SIM_FACILITY_PS;
+
+       case SIM_CURR_SEC_OP_PIN1_DISABLE:
+       case SIM_CURR_SEC_OP_PIN1_ENABLE:
+       case SIM_CURR_SEC_OP_PIN1_STATUS:
+               return SIM_FACILITY_SC;
+
+       case SIM_CURR_SEC_OP_FDN_DISABLE:
+       case SIM_CURR_SEC_OP_FDN_ENABLE:
+       case SIM_CURR_SEC_OP_FDN_STATUS:
+               return SIM_FACILITY_FD;
+
+       case SIM_CURR_SEC_OP_NET_DISABLE:
+       case SIM_CURR_SEC_OP_NET_ENABLE:
+       case SIM_CURR_SEC_OP_NET_STATUS:
+               return SIM_FACILITY_PN;
+
+       case SIM_CURR_SEC_OP_NS_DISABLE:
+       case SIM_CURR_SEC_OP_NS_ENABLE:
+       case SIM_CURR_SEC_OP_NS_STATUS:
+               return SIM_FACILITY_PU;
+
+       case SIM_CURR_SEC_OP_SP_DISABLE:
+       case SIM_CURR_SEC_OP_SP_ENABLE:
+       case SIM_CURR_SEC_OP_SP_STATUS:
+               return SIM_FACILITY_PP;
+
+       case SIM_CURR_SEC_OP_CP_DISABLE:
+       case SIM_CURR_SEC_OP_CP_ENABLE:
+       case SIM_CURR_SEC_OP_CP_STATUS:
+               return SIM_FACILITY_PC;
+
+       default:
+               err("Invalid sec op [%d]", sec_op);
+               return -1;
        }
 }
 #endif
@@ -2590,8 +2583,7 @@ static void on_response_sim_get_facility(TcorePending *p, gint data_len,
                        tokens = tcore_at_tok_new(line);
                        if (g_slist_length(tokens) < 1) {
                                err("Invalid message");
-                       }
-                       else {
+                       } else {
                                char *local_data = g_slist_nth_data(tokens, 0);
                                if (local_data != NULL) {
                                        get_facility_resp.b_enable = atoi(local_data);
@@ -2600,8 +2592,7 @@ static void on_response_sim_get_facility(TcorePending *p, gint data_len,
                                                (get_facility_resp.b_enable ? "Enabled" : "Disabled"));
 
                                        get_facility_resp.result = SIM_PIN_OPERATION_SUCCESS;
-                               }
-                               else {
+                               } else {
                                        err("Invalid message");
                                }
                        }
@@ -2626,7 +2617,7 @@ static void on_response_sim_get_facility(TcorePending *p, gint data_len,
  * Operation - get_imsi
  *
  * Request -
- * AT-Command: AT+CRSM= <command>[,<fileid>[,<P1>,<P2>,<P3>[,<data>[,<pathid>]]]]
+ * AT-Command: AT+CRSM= <command>[, <fileid>[, <P1>, <P2>, <P3>[, <data>[, <pathid>]]]]
  * where,
  * <command>
  * 176 READ BINARY
@@ -2657,8 +2648,8 @@ static void on_response_sim_get_facility(TcorePending *p, gint data_len,
  * 1 active
  *
  * Success:
- *     OK
- *     +CRSM: <sw1>,<sw2>[,<response>]
+ *     OK
+ *     +CRSM: <sw1>, <sw2>[, <response>]
  *
  * <sw1>, <sw2>
  * Integer type containing the SIM information
@@ -2836,7 +2827,7 @@ static TReturn __sim_get_msisdn(CoreObject *co_sim, UserRequest *ur)
  * String type values
  *
  * Success:
- *     OK
+ *     OK
  *
  * Failure:
  *     +CME ERROR: <error>
@@ -2963,9 +2954,9 @@ static TReturn s_sim_change_pins(CoreObject *co_sim, UserRequest *ur)
  * 1 active
  *
  * Success: when <mode>=2:
- *     OK
- *     +CLCK: <status>[,<class1> [<CR><LF>
- *     +CLCK: <status>,<class2> [...]]
+ *     OK
+ *     +CLCK: <status>[, <class1> [<CR><LF>
+ *     +CLCK: <status>, <class2> [...]]
  *
  * Failure:
  */
old mode 100755 (executable)
new mode 100644 (file)
index 37e468e..2ac595c
 #define AT_SW1_SUCCESS 0x90
 #define AT_SW2_SUCCESS 0
 
-#define SMS_SWAPBYTES16(x) (((x) & 0xffff0000) | (((x) & 0x0000ff00) >> 8) | (((x) & 0x000000ff) << 8))
+#define SMS_SWAPBYTES16(x) ((((x) & 0xff00) >> 8) | (((x) & 0x00ff) << 8))
 
 /* Local functions */
 static gchar __util_hexchar_to_int(gchar c);
-static gboolean __util_hexstring_to_bytes(gchar *hex_str,
-       gchar **bytes, guint *bytes_len);
+static gboolean __util_hexstring_to_bytes(char *hex_str,
+       char **bytes, guint *bytes_len);
 static long __util_encode_hex(const guchar *src,
-       long num_bytes, gchar *buf);
+       long num_bytes, char *buf);
 static guint __util_encode_pdu(const guchar sca[SMS_SMSP_ADDRESS_LEN],
-       const guchar *tpdu, guint tpdu_len, gchar *pdu);
+       const guchar *tpdu, guint tpdu_len, char *pdu);
 
 static gchar __util_hexchar_to_int(gchar c)
 {
@@ -93,9 +93,9 @@ static gchar __util_hexchar_to_int(gchar c)
        }
 }
 
-static gboolean __util_hexstring_to_bytes(gchar *hex_str, gchar **bytes, guint *bytes_len)
+static gboolean __util_hexstring_to_bytes(char *hex_str, char **bytes, guint *bytes_len)
 {
-       gchar *byte_str;
+       char *byte_str;
        guint hex_str_len;
        guint i;
 
@@ -104,7 +104,11 @@ static gboolean __util_hexstring_to_bytes(gchar *hex_str, gchar **bytes, guint *
 
        hex_str_len = strlen(hex_str);
 
-       byte_str = g_malloc0((hex_str_len / 2) + 1);
+       byte_str = g_try_malloc0((hex_str_len / 2) + 1);
+       if (byte_str == NULL) {
+               err("Memory allocation failed!!");
+               return FALSE;
+       }
 
        dbg("Convert String to Binary!!!");
        for (i = 0; i < hex_str_len; i += 2) {
@@ -119,7 +123,7 @@ static gboolean __util_hexstring_to_bytes(gchar *hex_str, gchar **bytes, guint *
        return TRUE;
 }
 
-static long __util_encode_hex(const guchar *src, long num_bytes, gchar *buf)
+static long __util_encode_hex(const guchar *src, long num_bytes, char *buf)
 {
        long i, j;
 
@@ -137,7 +141,7 @@ static long __util_encode_hex(const guchar *src, long num_bytes, gchar *buf)
 }
 
 static guint __util_encode_pdu(const guchar *sca,
-       const guchar *tpdu, guint tpdu_len, gchar *pdu)
+       const guchar *tpdu, guint tpdu_len, char *pdu)
 {
        guint sca_len = 0;
        unsigned char converted_sca[SMS_ENCODED_SCA_LEN_MAX];
@@ -145,8 +149,7 @@ static guint __util_encode_pdu(const guchar *sca,
        if (sca[0] == 0) {
                converted_sca[0] = 0;
                sca_len = 0;
-       }
-       else {
+       } else {
                unsigned int i;
                /*
                 * For PDU, the SC Address length is the number of packed BCD bytes
@@ -177,15 +180,14 @@ static int util_sms_decode_smsParameters(unsigned char *incoming, unsigned int l
 
        dbg(" RecordLen = %d", length);
 
-       if(incoming == NULL || params == NULL)
+       if (incoming == NULL || params == NULL)
                return FALSE;
 
-       alpha_id_len = length -SMS_SMSP_PARAMS_MAX_LEN;
+       alpha_id_len = length - SMS_SMSP_PARAMS_MAX_LEN;
 
        if (alpha_id_len > 0) {
-               if (alpha_id_len > SMS_SMSP_ALPHA_ID_LEN_MAX) {
+               if (alpha_id_len > SMS_SMSP_ALPHA_ID_LEN_MAX)
                        alpha_id_len = SMS_SMSP_ALPHA_ID_LEN_MAX;
-               }
 
                for (i = 0; i < alpha_id_len; i++) {
                        if (0xff == incoming[i]) {
@@ -303,31 +305,33 @@ static int util_sms_decode_smsParameters(unsigned char *incoming, unsigned int l
                        params->tpSvcCntrAddr.dialNumLen = 0;
        }
 
-       if ((params->paramIndicator & SMSPValidPID) == 0 && (alpha_id_len + nPIDOffset) < MAX_GSM_SMS_PARAM_RECORD_SIZE) {
+       if ((params->paramIndicator & SMSPValidPID) == 0
+                       && (alpha_id_len + nPIDOffset) < MAX_GSM_SMS_PARAM_RECORD_SIZE)
                params->tpProtocolId = incoming[alpha_id_len + nPIDOffset];
-       }
-       if ((params->paramIndicator & SMSPValidDCS) == 0 && (alpha_id_len + nDCSOffset) < MAX_GSM_SMS_PARAM_RECORD_SIZE) {
+
+       if ((params->paramIndicator & SMSPValidDCS) == 0
+                       && (alpha_id_len + nDCSOffset) < MAX_GSM_SMS_PARAM_RECORD_SIZE)
                params->tpDataCodingScheme = incoming[alpha_id_len + nDCSOffset];
-       }
-       if ((params->paramIndicator & SMSPValidVP) == 0 && (alpha_id_len + nVPOffset) < MAX_GSM_SMS_PARAM_RECORD_SIZE) {
+
+       if ((params->paramIndicator & SMSPValidVP) == 0
+                       && (alpha_id_len + nVPOffset) < MAX_GSM_SMS_PARAM_RECORD_SIZE)
                params->tpValidityPeriod = incoming[alpha_id_len + nVPOffset];
-       }
 
        dbg(" Alpha Id(Len) = %d", (int) params->alphaIdLen);
 
-       for (i = 0; i < (int) params->alphaIdLen; i++) {
+       for (i = 0; i < (int) params->alphaIdLen; i++)
                dbg(" Alpha Id = [%d] [%c]", i, params->szAlphaId[i]);
-       }
-       dbg(" PID = %d",params->tpProtocolId);
-       dbg(" DCS = %d",params->tpDataCodingScheme);
-       dbg(" VP = %d",params->tpValidityPeriod);
+
+       dbg(" PID = %d", params->tpProtocolId);
+       dbg(" DCS = %d", params->tpDataCodingScheme);
+       dbg(" VP = %d", params->tpValidityPeriod);
 
        return TRUE;
 }
 
 /*
  * Notification - SMS-DELIVER
- * +CMT = [<alpha>],<length><CR><LF><pdu> (PDU mode enabled)
+ * +CMT = [<alpha>], <length><CR><LF><pdu> (PDU mode enabled)
  *
  * where,
  * <alpha> alpha_id
@@ -349,7 +353,7 @@ static gboolean on_notification_sms_incoming_msg(CoreObject *co,
        GSList *lines = NULL;
        char *line = NULL;
        int pdu_len = 0, no_of_tokens = 0;
-       gchar *byte_pdu = NULL;
+       char *byte_pdu = NULL;
        guint buf_len = 0;
 
        struct tnoti_sms_incoming_msg incoming_msg;
@@ -413,8 +417,7 @@ static gboolean on_notification_sms_incoming_msg(CoreObject *co,
        if (sca_length == 0) {
                dbg("SCA length = 0");
                memcpy(incoming_msg.msgInfo.tpduData, &byte_pdu[1], incoming_msg.msgInfo.msgLength);
-       }
-       else {
+       } else {
                incoming_msg.msgInfo.sca[0] = sca_length;
                memcpy(&(incoming_msg.msgInfo.sca[1]), &byte_pdu[1], sca_length);
                memcpy(incoming_msg.msgInfo.tpduData, &byte_pdu[sca_length+1], incoming_msg.msgInfo.msgLength);
@@ -434,27 +437,31 @@ static gboolean on_notification_sms_incoming_msg(CoreObject *co,
 #if 0  /* To be used later */
 static int __util_map_sms_err(int err)
 {
-       int sms_error=0;
+       int sms_error = 0;
 
        switch (err) {
-       case 300: //ME Failure;
+       case 300: /* ME Failure; */
                sms_error = SMS_PHONE_FAILURE;
        break;
-       case 302: //Operation not allowed;
-       case 303: //Operation not supported;
+
+       case 302: /* Operation not allowed; */
+       case 303: /* Operation not supported; */
                sms_error = SMS_OPERATION_NOT_SUPPORTED;
        break;
-       case 304: //Invalid PDU mode parameter;
-       case 305: //Invalid text mode parameter;
+
+       case 304: /* Invalid PDU mode parameter; */
+       case 305: /* Invalid text mode parameter; */
                sms_error = SMS_INVALID_PARAMETER_FORMAT;
        break;
-       case 320: //memory failure;
-       case 321: //invalid memory index;
-       case 322: //memory full;
+
+       case 320: /* memory failure; */
+       case 321: /* invalid memory index; */
+       case 322: /* memory full; */
                sms_error = SMS_MEMORY_FAILURE;
        break;
-       case 330: //SCA unknown;
-       case 500: //Unknown error;
+
+       case 330: /* SCA unknown; */
+       case 500: /* Unknown error; */
        default:
                sms_error = SMS_UNKNOWN;
        break;
@@ -467,7 +474,7 @@ static int __util_map_sms_err(int err)
 static gboolean on_notification_sms_device_ready(CoreObject *co,
        const void *event_info, void *user_data)
 {
-       struct tnoti_sms_ready_status sms_ready_info = {0,};
+       struct tnoti_sms_ready_status sms_ready_info = {0, };
 
        dbg("SMS notification - [Device Ready]");
 
@@ -491,11 +498,10 @@ static void on_response_sms_send_more_msg(TcorePending *p,
 
        dbg("Enter");
 
-       if (at_resp && at_resp->success) {
+       if (at_resp && at_resp->success)
                dbg("Response OK for AT+CMMS: More msgs to send!!");
-       } else {
+       else
                err("Response NOK for AT+CMMS: More msgs to send");
-       }
 
        /* Need not send any response */
 }
@@ -516,17 +522,17 @@ static void on_response_sms_send_sms(TcorePending *p,
        if (at_resp && at_resp->success) {
                dbg("Response OK");
                if (at_resp->lines) {
-                       const gchar *line;
-                       gchar* line_token;
+                       const char *line;
+                       char *line_token;
                        GSList *tokens = NULL;
                        gint msg_ref = 0;
 
-                       line = (const gchar *)at_resp->lines->data;
+                       line = (const char *)at_resp->lines->data;
                        tokens = tcore_at_tok_new(line);
                        line_token = g_slist_nth_data(tokens, 0);
                        if (line_token != NULL) {
                                /*
-                                * Response from MODEM for send SMS: +CMGS: <mr>[,<ackpdu>]
+                                * Response from MODEM for send SMS: +CMGS: <mr>[, <ackpdu>]
                                 *
                                 * Message Reference is not used by MSG_SERVER and application.
                                 * So Filling only result
@@ -578,7 +584,7 @@ static void on_response_sms_get_msg_indices(TcorePending *p,
                        line_count = g_slist_length(at_resp->lines);
                        dbg("No. of lines: [%d]", line_count);
 
-                       for (count = 0; count<line_count; count++) {
+                       for (count = 0; count < line_count; count++) {
                                line = g_slist_nth_data(at_resp->lines, count);
 
                                dbg("gslist_line [%d] is [%s]", count, line);
@@ -599,14 +605,12 @@ static void on_response_sms_get_msg_indices(TcorePending *p,
                                        continue;
                                }
                        }
-               }else {
+               } else {
                        err("Invalid Response Received: NO Lines Present");
-                       if (count_info->storedMsgCnt.usedCount == 0) { // Check if used count is zero
+                       if (count_info->storedMsgCnt.usedCount == 0) /* Check if used count is zero */
                                count_info->result = TCORE_RETURN_SUCCESS;
-                       }
                }
-       }
-       else {
+       } else {
                err("RESPONSE NOK");
        }
 
@@ -638,6 +642,10 @@ static void on_response_sms_get_msg_count(TcorePending *p,
        ur = tcore_pending_ref_user_request(p);
 
        count_info = g_try_malloc0(sizeof(struct tresp_sms_get_storedMsgCnt));
+       if (NULL == count_info) {
+               err("Memory Allocation failed for count_info");
+               return;
+       }
        count_info->result = TCORE_RETURN_FAILURE;
 
        if (at_resp && at_resp->success) {
@@ -646,7 +654,7 @@ static void on_response_sms_get_msg_count(TcorePending *p,
                        char *line = NULL, *line_token = NULL;
 
                        line = (char *)at_resp->lines->data;
-                       dbg("line: [%s]",line);
+                       dbg("line: [%s]", line);
 
                        /*
                         * Tokenize
@@ -689,16 +697,13 @@ static void on_response_sms_get_msg_count(TcorePending *p,
 
                                return;
 
-                       }
-                       else {
+                       } else {
                                dbg("No records...!!!");
                        }
-               }
-               else {
+               } else {
                        err("Invalid Response Received: NO Lines Present");
                }
-       }
-       else {
+       } else {
                err("RESPONSE NOK");
        }
 
@@ -732,7 +737,7 @@ static void on_response_sms_get_sca(TcorePending *p,
                if (at_resp->lines) {
                        GSList *tokens = NULL;
                        const char *sca_tok_addr;
-                       gchar *line = NULL, *sca_addr = NULL, *sca_toa = NULL;
+                       char *line = NULL, *sca_addr = NULL, *sca_toa = NULL;
 
                        line = (char *)at_resp->lines->data;
                        tokens = tcore_at_tok_new(line);
@@ -742,7 +747,7 @@ static void on_response_sms_get_sca(TcorePending *p,
                        sca_addr = tcore_at_tok_extract(sca_tok_addr);
                        dbg("SCA: [%s] SCA-TOA: [%s]", sca_addr, sca_toa);
                        if ((NULL != sca_addr) && (NULL != sca_toa)) {
-                               gchar *sca;
+                               char *sca;
                                guint sca_len = 0;
 
                                __util_hexstring_to_bytes(sca_addr, &sca, &sca_len); /*TODO : Check*/
@@ -814,7 +819,7 @@ static void on_response_atmodem_sms_send_deliver_report(TcorePending *p,
 {
        const struct tcore_at_response *at_resp = data;
        UserRequest *ur;
-       struct tresp_sms_set_delivery_report set_deliver_report_rsp = {0,};
+       struct tresp_sms_set_delivery_report set_deliver_report_rsp = {0, };
 
        dbg("Enter");
 
@@ -844,7 +849,7 @@ static void on_response_sms_get_params(TcorePending *pending, int data_len, cons
        int sw1 = 0, sw2 = 0;
        const char *line = NULL;
        char *line_token = NULL;
-       GSList *tokens=NULL;
+       GSList *tokens = NULL;
        char *hexData = NULL;
        char *recordData = NULL;
        int i = 0;
@@ -869,9 +874,8 @@ static void on_response_sms_get_params(TcorePending *pending, int data_len, cons
                        if (line_token != NULL) {
                                sw2 = atoi(line_token);
                                dbg("sw2 is %d", sw2);
-                               if ((sw1 == 0x90 && sw2 == 0x00) || sw1 == 0x91) {
+                               if ((sw1 == 0x90 && sw2 == 0x00) || sw1 == 0x91)
                                        resp_get_params.result = SMS_SENDSMS_SUCCESS;
-                               }
                        } else {
                                dbg("sw2 is NULL");
                        }
@@ -890,7 +894,6 @@ static void on_response_sms_get_params(TcorePending *pending, int data_len, cons
                                        dbg("SCAddr = %d [%02x]", i, resp_get_params.paramsInfo.tpSvcCntrAddr.diallingNum[i]);
 
                                free(recordData);
-                               //free(hexData);
                        } else {
                                dbg("No response");
 
@@ -914,7 +917,7 @@ static void on_response_sms_get_params(TcorePending *pending, int data_len, cons
 static void on_response_sms_set_params(TcorePending *pending, int data_len, const void *data, void *user_data)
 {
        UserRequest *ur;
-       struct tresp_sms_set_params resp_set_sms_params= {0, };
+       struct tresp_sms_set_params resp_set_sms_params = {0, };
        const struct tcore_at_response *at_resp = data;
 
        resp_set_sms_params.result = SMS_DEVICE_FAILURE;
@@ -922,12 +925,12 @@ static void on_response_sms_set_params(TcorePending *pending, int data_len, cons
        if (at_resp && at_resp->success) {
                dbg("RESPONSE OK");
                if (at_resp->lines) {
-                       GSList *tokens=NULL;
-                       int sw1 =, sw2 = 0;
+                       GSList *tokens = NULL;
+                       int sw1 = 0, sw2 = 0;
                        const char *line = NULL;
                        char *line_token = NULL;
 
-                       line = (const char *) at_resp->lines->data;
+                       line = (const char *)at_resp->lines->data;
                        tokens = tcore_at_tok_new(line);
 
                        line_token = g_slist_nth_data(tokens, 0);
@@ -937,6 +940,7 @@ static void on_response_sms_set_params(TcorePending *pending, int data_len, cons
                                err("sw1 is NULL");
                                goto EXIT;
                        }
+
                        line_token = g_slist_nth_data(tokens, 1);
                        if (line_token != NULL) {
                                sw2 = atoi(line_token);
@@ -944,12 +948,13 @@ static void on_response_sms_set_params(TcorePending *pending, int data_len, cons
                                err("sw2 is NULL");
                                goto EXIT;
                        }
+
                        dbg("sw1 - %x sw2 - %x", sw1, sw2);
-                       if (((sw1 == AT_SW1_SUCCESS) && (sw2 == AT_SW2_SUCCESS)) || (sw1 == 0x91)) {
+                       if (((sw1 == AT_SW1_SUCCESS) && (sw2 == AT_SW2_SUCCESS)) || (sw1 == 0x91))
                                resp_set_sms_params.result = SMS_SENDSMS_SUCCESS;
-                       } else {
+                       else
                                err("Status Word 1 and Status Word 2 are invalid");
-                       }
+
 EXIT:
                        tcore_at_tok_free(tokens);
                } else {
@@ -977,8 +982,8 @@ static void on_response_sms_get_param_count(TcorePending *pending, int data_len,
        char *line = NULL , *line_token = NULL;
        int sw1 = 0 , sw2 = 0, *smsp_record_len = NULL;
        int sim_type = 0;
-       GSList *tokens=NULL;
-       CoreObject *co_sim = NULL;  //need this to get the sim type GSM/USIM
+       GSList *tokens = NULL;
+       CoreObject *co_sim = NULL;  /* need this to get the sim type GSM/USIM */
        TcorePlugin *plugin = NULL;
 
        char *hexData = NULL;
@@ -995,22 +1000,21 @@ static void on_response_sms_get_param_count(TcorePending *pending, int data_len,
                if (at_resp->lines) {
                        line = (char *) at_resp->lines->data;
 
-                       /*+CRSM: <sw1>,<sw2>[,<response>]*/
+                       /*+CRSM: <sw1>, <sw2>[, <response>]*/
                        dbg("line is %s", line);
 
                        tokens = tcore_at_tok_new(line);
                        line_token = g_slist_nth_data(tokens, 0);
-                       if (line_token != NULL) {
+                       if (line_token != NULL)
                                sw1 = atoi(line_token);
-                       } else {
+                       else
                                dbg("sw1 is NULL");
-                       }
+
                        line_token = g_slist_nth_data(tokens, 1);
                        if (line_token != NULL) {
                                sw2 = atoi(line_token);
-                               if ((sw1 == 144) && (sw2 == 0)) {
+                               if ((sw1 == 144) && (sw2 == 0))
                                        resp_get_param_cnt.result = SMS_SENDSMS_SUCCESS;
-                               }
                        } else {
                                dbg("sw2 is NULL");
                        }
@@ -1039,6 +1043,11 @@ static void on_response_sms_get_param_count(TcorePending *pending, int data_len,
                                        dbg("hexData: %s", hexData + 1);
 
                                        recordData = util_hexStringToBytes(hexData);
+                                       if (!recordData) {
+                                               err("util_hexStringToBytes Failed!!");
+                                               tcore_at_tok_free(tokens);
+                                               return;
+                                       }
 
                                        tcore_util_hex_dump("   ", strlen(hexData) / 2, recordData);
 
@@ -1046,7 +1055,7 @@ static void on_response_sms_get_param_count(TcorePending *pending, int data_len,
 
                                        co_sim = tcore_plugin_ref_core_object(tcore_pending_ref_plugin(pending), CORE_OBJECT_TYPE_SIM);
                                        sim_type = tcore_sim_get_type(co_sim);
-                                       dbg("sim type is %d",sim_type);
+                                       dbg("sim type is %d", sim_type);
 
                                        if (sim_type ==  SIM_TYPE_USIM) {
                                                /*
@@ -1075,97 +1084,112 @@ static void on_response_sms_get_param_count(TcorePending *pending, int data_len,
                                                        dbg("tag_len=[%d]", tag_len);
                                                        /* FCP file descriptor - file type, accessibility, DF, ADF etc*/
                                                        if (*ptr_data == 0x82) {
-                                                                       /* increment to next byte */
-                                                                       ptr_data++;
-                                                                       /*2 or 5 value*/
-                                                                       ptr_data++;
-                                                       /*      unsigned char file_desc_len = *ptr_data++;*/
-                                                       /*      s_dbg("file descriptor length: [%d]", file_desc_len);*/
-                                                       /* TBD:  currently capture only file type : ignore sharable, non sharable, working, internal etc*/
-                                                       /* consider only last 3 bits*/
-                                                       file_type_tag = file_type_tag & (*ptr_data);
-
-                                                       switch (file_type_tag) {
                                                                /* increment to next byte */
                                                                ptr_data++;
 
+                                                               /*2 or 5 value*/
+                                                               ptr_data++;
+
+                                                               /* consider only last 3 bits*/
+                                                               file_type_tag = file_type_tag & (*ptr_data);
+
+                                                               switch (file_type_tag) {
+                                                                       /* increment to next byte */
+                                                                       ptr_data++;
+
                                                                case 0x1:
                                                                        dbg("Getting FileType: [Transparent file type]");
                                                                        /* increment to next byte */
                                                                        ptr_data++;
-                                                                       file_type = 0x01;       //SIM_FTYPE_TRANSPARENT
-                                                                       /*      data coding byte - value 21 */
+                                                                       file_type = 0x01; /* SIM_FTYPE_TRANSPARENT */
+
+                                                                       /* data coding byte - value 21 */
                                                                        ptr_data++;
-                                                                       break;
+                                                               break;
 
                                                                case 0x2:
                                                                        dbg("Getting FileType: [Linear fixed file type]");
                                                                        /* increment to next byte */
                                                                        ptr_data++;
-                                                                       /*      data coding byte - value 21 */
+
+                                                                       /* data coding byte - value 21 */
                                                                        ptr_data++;
-                                                                       /*      2bytes */
+
+                                                                       /* 2bytes */
                                                                        memcpy(&record_len, ptr_data, 2);
+
                                                                        /* swap bytes */
                                                                        record_len = SMS_SWAPBYTES16(record_len);
                                                                        ptr_data = ptr_data + 2;
                                                                        num_of_records = *ptr_data++;
+
                                                                        /* Data lossy conversation from enum (int) to unsigned char */
-                                                                       file_type = 0x02;       // SIM_FTYPE_LINEAR_FIXED
-                                                                       break;
+                                                                       file_type = 0x02;       /* SIM_FTYPE_LINEAR_FIXED */
+                                                               break;
 
                                                                case 0x6:
                                                                        dbg(" Cyclic fixed file type");
                                                                        /* increment to next byte */
                                                                        ptr_data++;
-                                                                       /*      data coding byte - value 21 */
+
+                                                                       /* data coding byte - value 21 */
                                                                        ptr_data++;
-                                                                       /*      2bytes */
+
+                                                                       /* 2bytes */
                                                                        memcpy(&record_len, ptr_data, 2);
+
                                                                        /* swap bytes  */
                                                                        record_len = SMS_SWAPBYTES16(record_len);
                                                                        ptr_data = ptr_data + 2;
                                                                        num_of_records = *ptr_data++;
-                                                                       file_type = 0x04;       //SIM_FTYPE_CYCLIC
-                                                                       break;
+                                                                       file_type = 0x04;       /* SIM_FTYPE_CYCLIC */
+                                                               break;
 
                                                                default:
                                                                        dbg("not handled file type [0x%x]", *ptr_data);
-                                                                       break;
+                                                               break;
                                                                }
                                                        } else {
                                                                dbg("INVALID FCP received - DEbug!");
-                                                               //free(hexData);
                                                                free(recordData);
                                                                tcore_at_tok_free(tokens);
+
                                                                return;
                                                        }
 
-                                                       /*File identifier - file id?? */ // 0x84,0x85,0x86 etc are currently ignored and not handled
+                                                       /*
+                                                        * File identifier - file id??
+                                                        *
+                                                        * 0x84, 0x85, 0x86 etc are currently ignored and not handled
+                                                        */
                                                        if (*ptr_data == 0x83) {
                                                                /* increment to next byte */
                                                                ptr_data++;
                                                                file_id_len = *ptr_data++;
                                                                memcpy(&file_id, ptr_data, file_id_len);
-                                                               /* swap bytes    */
+
+                                                               /* swap bytes */
                                                                file_id = SMS_SWAPBYTES16(file_id);
                                                                ptr_data = ptr_data + 2;
                                                                dbg("Getting FileID=[0x%x]", file_id);
                                                        } else {
                                                                dbg("INVALID FCP received - DEbug!");
-                                                               //free(hexData);
                                                                free(recordData);
                                                                tcore_at_tok_free(tokens);
+
                                                                return;
                                                        }
 
-                                                       /*      proprietary information  */
+                                                       /* proprietary information  */
                                                        if (*ptr_data == 0xA5) {
                                                                unsigned short prop_len;
+
                                                                /* increment to next byte */
                                                                ptr_data++;
+
                                                                /* length */
                                                                prop_len = *ptr_data;
+
                                                                /* skip data */
                                                                ptr_data = ptr_data + prop_len + 1;
                                                        } else {
@@ -1174,15 +1198,15 @@ static void on_response_sms_get_param_count(TcorePending *pending, int data_len,
 
                                                        /* life cycle status integer [8A][length:0x01][status]*/
                                                        /*
-                                                        status info b8~b1
-                                                        00000000 : No information given
-                                                        00000001 : creation state
-                                                        00000011 : initialization state
-                                                        000001-1 : operation state -activated
-                                                        000001-0 : operation state -deactivated
-                                                        000011-- : Termination state
-                                                        b8~b5 !=0, b4~b1=X : Proprietary
-                                                        Any other value : RFU
+                                                        status info b8~b1
+                                                        00000000 : No information given
+                                                        00000001 : creation state
+                                                        00000011 : initialization state
+                                                        000001-1 : operation state -activated
+                                                        000001-0 : operation state -deactivated
+                                                        000011-- : Termination state
+                                                        b8~b5 !=0, b4~b1=X : Proprietary
+                                                        Any other value : RFU
                                                         */
                                                        if (*ptr_data == 0x8A) {
                                                                /* increment to next byte */
@@ -1191,22 +1215,22 @@ static void on_response_sms_get_param_count(TcorePending *pending, int data_len,
                                                                ptr_data++;
 
                                                                switch (*ptr_data) {
-                                                                       case 0x04:
-                                                                       case 0x06:
-                                                                               dbg("<IPC_RX> operation state -deactivated");
-                                                                               ptr_data++;
-                                                                               break;
-
-                                                                       case 0x05:
-                                                                       case 0x07:
-                                                                               dbg("<IPC_RX> operation state -activated");
-                                                                               ptr_data++;
-                                                                               break;
-
-                                                                       default:
-                                                                               dbg("<IPC_RX> DEBUG! LIFE CYCLE STATUS =[0x%x]",*ptr_data);
-                                                                               ptr_data++;
-                                                                               break;
+                                                               case 0x04:
+                                                               case 0x06:
+                                                                       dbg("<IPC_RX> operation state -deactivated");
+                                                                       ptr_data++;
+                                                               break;
+
+                                                               case 0x05:
+                                                               case 0x07:
+                                                                       dbg("<IPC_RX> operation state -activated");
+                                                                       ptr_data++;
+                                                               break;
+
+                                                               default:
+                                                                       dbg("<IPC_RX> DEBUG! LIFE CYCLE STATUS =[0x%x]", *ptr_data);
+                                                                       ptr_data++;
+                                                               break;
                                                                }
                                                        }
 
@@ -1214,12 +1238,15 @@ static void on_response_sms_get_param_count(TcorePending *pending, int data_len,
                                                        if (*ptr_data == 0x86 || *ptr_data == 0x8B || *ptr_data == 0x8C || *ptr_data == 0xAB) {
                                                                /* increment to next byte */
                                                                ptr_data++;
+
                                                                /* if tag length is 3 */
                                                                if (*ptr_data == 0x03) {
                                                                        /* increment to next byte */
                                                                        ptr_data++;
+
                                                                        /* EFARR file id */
                                                                        memcpy(&arr_file_id, ptr_data, 2);
+
                                                                        /* swap byes */
                                                                        arr_file_id = SMS_SWAPBYTES16(arr_file_id);
                                                                        ptr_data = ptr_data + 2;
@@ -1228,15 +1255,14 @@ static void on_response_sms_get_param_count(TcorePending *pending, int data_len,
                                                                } else {
                                                                        /* if tag length is not 3 */
                                                                        /* ignoring bytes       */
-                                                                       //      ptr_data = ptr_data + 4;
                                                                        dbg("Useless security attributes, so jump to next tag");
                                                                        ptr_data = ptr_data + (*ptr_data + 1);
                                                                }
                                                        } else {
                                                                dbg("INVALID FCP received[0x%x] - DEbug!", *ptr_data);
-                                                               //free(hexData);
                                                                free(recordData);
                                                                tcore_at_tok_free(tokens);
+
                                                                return;
                                                        }
 
@@ -1244,22 +1270,25 @@ static void on_response_sms_get_param_count(TcorePending *pending, int data_len,
 
                                                        /* file size excluding structural info*/
                                                        if (*ptr_data == 0x80) {
-                                                               /* for EF file size is body of file and for Linear or cyclic it is
+                                                               /*
+                                                                * for EF file size is body of file and for Linear or cyclic it is
                                                                 * number of recXsizeof(one record)
                                                                 */
                                                                /* increment to next byte */
                                                                ptr_data++;
+
                                                                /* length is 1 byte - value is 2 bytes or more */
                                                                ptr_data++;
                                                                memcpy(&file_size, ptr_data, 2);
+
                                                                /* swap bytes */
                                                                file_size = SMS_SWAPBYTES16(file_size);
                                                                ptr_data = ptr_data + 2;
                                                        } else {
                                                                dbg("INVALID FCP received - Debug!");
-                                                               //free(hexData);
                                                                free(recordData);
                                                                tcore_at_tok_free(tokens);
+
                                                                return;
                                                        }
 
@@ -1268,9 +1297,11 @@ static void on_response_sms_get_param_count(TcorePending *pending, int data_len,
                                                                int len;
                                                                /* increment to next byte */
                                                                ptr_data++;
+
                                                                /* length */
                                                                len = *ptr_data;
                                                                dbg("len=[%d]", len);
+
                                                                /* ignored bytes */
                                                                ptr_data = ptr_data + 3;
                                                        } else {
@@ -1278,114 +1309,126 @@ static void on_response_sms_get_param_count(TcorePending *pending, int data_len,
                                                                /* 0x81 is optional tag?? check out! so do not return -1 from here! */
                                                                /* return -1; */
                                                        }
-                                                       /*short file identifier ignored*/
+
+                                                       /* short file identifier ignored */
                                                        if (*ptr_data == 0x88) {
                                                                dbg("0x88: Do Nothing");
-                                                               /*DO NOTHING*/
+                                                               /* DO NOTHING */
                                                        }
                                                } else {
                                                        dbg("INVALID FCP received - Debug!");
-                                                       //free(hexData);
                                                        free(recordData);
                                                        tcore_at_tok_free(tokens);
+
                                                        return;
                                                }
                                        } else if (sim_type == SIM_TYPE_GSM) {
-                                               /*      ignore RFU byte1 and byte2 */
+                                               /* ignore RFU byte1 and byte2 */
                                                ptr_data++;
                                                ptr_data++;
-                                               /*      file size */
-                                               //file_size = p_info->response_len;
+
+                                               /* file size */
                                                memcpy(&file_size, ptr_data, 2);
+
                                                /* swap bytes */
                                                file_size = SMS_SWAPBYTES16(file_size);
-                                               /*      parsed file size */
+
+                                               /* parsed file size */
                                                ptr_data = ptr_data + 2;
-                                               /*  file id  */
+
+                                               /* file id */
                                                memcpy(&file_id, ptr_data, 2);
                                                file_id = SMS_SWAPBYTES16(file_id);
                                                dbg(" FILE id --> [%x]", file_id);
                                                ptr_data = ptr_data + 2;
+
                                                /* save file type - transparent, linear fixed or cyclic */
                                                file_type_tag = (*(ptr_data + 7));
 
                                                switch (*ptr_data) {
-                                                       case 0x0:
-                                                               /* RFU file type */
-                                                               dbg(" RFU file type- not handled - Debug!");
-                                                               break;
+                                               case 0x0:
+                                                       /* RFU file type */
+                                                       dbg(" RFU file type- not handled - Debug!");
+                                               break;
+
+                                               case 0x1:
+                                                       /* MF file type */
+                                                       dbg(" MF file type - not handled - Debug!");
+                                               break;
+
+                                               case 0x2:
+                                                       /* DF file type */
+                                                       dbg(" DF file type - not handled - Debug!");
+                                               break;
+
+                                               case 0x4:
+                                                       /* EF file type */
+                                                       dbg(" EF file type [%d] ", file_type_tag);
+                                                       /*      increment to next byte */
+                                                       ptr_data++;
 
-                                                       case 0x1:
-                                                               /* MF file type */
-                                                               dbg(" MF file type - not handled - Debug!");
-                                                               break;
+                                                       if (file_type_tag == 0x00 || file_type_tag == 0x01) {
+                                                               /* increament to next byte as this byte is RFU */
+                                                               ptr_data++;
+                                                               file_type =
+                                                                       (file_type_tag == 0x00) ? 0x01 : 0x02; /* SIM_FTYPE_TRANSPARENT:SIM_FTYPE_LINEAR_FIXED; */
+                                                       } else {
+                                                               /* increment to next byte */
+                                                               ptr_data++;
+                                                               /* For a cyclic EF all bits except bit 7 are RFU; b7=1 indicates that */
+                                                               /* the INCREASE command is allowed on the selected cyclic file. */
+                                                               file_type = 0x04;       /* SIM_FTYPE_CYCLIC; */
+                                                       }
 
-                                                       case 0x2:
-                                                               /* DF file type */
-                                                               dbg(" DF file type - not handled - Debug!");
-                                                               break;
+                                                       /* bytes 9 to 11 give SIM file access conditions */
+                                                       ptr_data++;
 
-                                                       case 0x4:
-                                                               /* EF file type */
-                                                               dbg(" EF file type [%d] ", file_type_tag);
-                                                               /*      increment to next byte */
-                                                               ptr_data++;
+                                                       /* byte 10 has one nibble that is RF U and another for INCREASE which is not used currently */
+                                                       ptr_data++;
 
-                                                               if (file_type_tag == 0x00 || file_type_tag == 0x01) {
-                                                                       /* increament to next byte as this byte is RFU */
-                                                                       ptr_data++;
-                                                                       file_type =
-                                                                                       (file_type_tag == 0x00) ? 0x01 : 0x02; // SIM_FTYPE_TRANSPARENT:SIM_FTYPE_LINEAR_FIXED;
-                                                               } else {
-                                                                       /* increment to next byte */
-                                                                       ptr_data++;
-                                                                       /*      For a cyclic EF all bits except bit 7 are RFU; b7=1 indicates that */
-                                                                       /* the INCREASE command is allowed on the selected cyclic file. */
-                                                                       file_type = 0x04;       // SIM_FTYPE_CYCLIC;
-                                                               }
-                                                               /* bytes 9 to 11 give SIM file access conditions */
-                                                               ptr_data++;
-                                                               /* byte 10 has one nibble that is RF U and another for INCREASE which is not used currently */
-                                                               ptr_data++;
-                                                               /* byte 11 is invalidate and rehabilate nibbles */
-                                                               ptr_data++;
-                                                               /* byte 12 - file status */
-                                                               ptr_data++;
-                                                               /* byte 13 - GSM specific data */
-                                                               ptr_data++;
-                                                               /*      byte 14 - structure of EF - transparent or linear or cyclic , already saved above */
-                                                               ptr_data++;
-                                                               /* byte 15 - length of record for linear and cyclic , for transparent it is set to 0x00. */
-                                                               record_len = *ptr_data;
-                                                               dbg("record length[%d], file size[%d]", record_len, file_size);
+                                                       /* byte 11 is invalidate and rehabilate nibbles */
+                                                       ptr_data++;
 
-                                                               if (record_len != 0)
-                                                                       num_of_records = (file_size / record_len);
+                                                       /* byte 12 - file status */
+                                                       ptr_data++;
 
-                                                               dbg("Number of records [%d]", num_of_records);
-                                                               break;
+                                                       /* byte 13 - GSM specific data */
+                                                       ptr_data++;
 
-                                                       default:
-                                                               dbg(" not handled file type");
-                                                               break;
+                                                       /* byte 14 - structure of EF - transparent or linear or cyclic , already saved above */
+                                                       ptr_data++;
+
+                                                       /* byte 15 - length of record for linear and cyclic , for transparent it is set to 0x00. */
+                                                       record_len = *ptr_data;
+                                                       dbg("record length[%d], file size[%d]", record_len, file_size);
+
+                                                       if (record_len != 0)
+                                                               num_of_records = (file_size / record_len);
+
+                                                       dbg("Number of records [%d]", num_of_records);
+                                               break;
+
+                                               default:
+                                                       dbg(" not handled file type");
+                                               break;
                                                }
                                        } else {
                                                dbg(" Card Type - UNKNOWN  [%d]", sim_type);
                                        }
 
-                                       dbg("EF[0x%x] size[%ld] Type[0x%x] NumOfRecords[%ld] RecordLen[%ld]", file_id, file_size, file_type, num_of_records, record_len);
+                                       dbg("EF[0x%x] size[%ld] Type[0x%x] NumOfRecords[%ld] RecordLen[%ld]",
+                                               file_id, file_size, file_type, num_of_records, record_len);
 
                                        resp_get_param_cnt.recordCount = num_of_records;
                                        resp_get_param_cnt.result = SMS_SUCCESS;
 
-                                       //TO Store smsp record length in the property
+                                       /* TO Store smsp record length in the property */
                                        plugin = tcore_pending_ref_plugin(pending);
                                        smsp_record_len = tcore_plugin_ref_property(plugin, "SMSPRECORDLEN");
                                        memcpy(smsp_record_len, &record_len, sizeof(int));
                                        dbg("Property Updated");
 
                                        free(recordData);
-                                       //free(hexData);
                                } else {
                                        /*2. SIM access fail case*/
                                        dbg("SIM access fail");
@@ -1401,15 +1444,14 @@ static void on_response_sms_get_param_count(TcorePending *pending, int data_len,
                dbg("RESPONSE NOK");
        }
 
-       if (ur) {
-       tcore_user_request_send_response(ur,
-               TRESP_SMS_GET_PARAMCNT,
-               sizeof(struct tresp_sms_get_paramcnt), &resp_get_param_cnt);
-       } else {
+       if (ur)
+               tcore_user_request_send_response(ur,
+                       TRESP_SMS_GET_PARAMCNT,
+                       sizeof(struct tresp_sms_get_paramcnt), &resp_get_param_cnt);
+       else
                err("ur is NULL");
-       }
 
-       if(tokens)
+       if (tokens)
                tcore_at_tok_free(tokens);
 
 }
@@ -1420,15 +1462,15 @@ static void on_response_sms_get_param_count(TcorePending *pending, int data_len,
  *
  * Request -
  * AT-Command: AT+CMGS
- *     For PDU mode (+CMGF=0):
- *     +CMGS=<length><CR>
- *     PDU is given<ctrl-Z/ESC>
+ *     For PDU mode (+CMGF=0):
+ *     +CMGS=<length><CR>
+ *     PDU is given<ctrl-Z/ESC>
  * where,
  * <length> Length of the pdu.
  * <PDU>    PDU to send.
  *
  * Response -
- *+CMGS: <mr>[,<ackpdu>]
+ *+CMGS: <mr>[, <ackpdu>]
  *     OK
  * Failure:
  *     +CMS ERROR: <error>
@@ -1500,14 +1542,14 @@ static TReturn send_umts_msg(CoreObject *co, UserRequest *ur)
  *
  * Request -
  * AT-Command: AT+CPMS
- *      +CPMS=<mem1>[, <mem2>[,<mem3>]]
+ *      +CPMS=<mem1>[, <mem2>[, <mem3>]]
  *  where
  * <mem1> memory storage to read.
  *
  * Response -
  * Success: (Single-line output)
- * +CPMS: <mem1>,<used1>,<total1>,<mem2>,<used2>,<total2>,
- * <mem3>,<used3>,<total3>
+ * +CPMS: <mem1>, <used1>, <total1>, <mem2>, <used2>, <total2>,
+ * <mem3>, <used3>, <total3>
  * OK
  *
  * Failure:
@@ -1539,13 +1581,12 @@ static TReturn sms_get_msg_count(CoreObject *co, UserRequest *ur)
  * AT-Command: AT+CSCA?
  *
  * Response -
- *     Success: Single-Line
- *     +CSCA: <sca>,<tosca>
- *     OK
+ *     Success: Single-Line
+ *     +CSCA: <sca>, <tosca>
+ *     OK
  * where
  * <sca> Service center number
  * <tosca> address type of SCA
- *
  */
 #ifdef EMUL_SUPPORTED
 static TReturn get_sca(CoreObject *co, UserRequest *ur)
@@ -1573,22 +1614,22 @@ static TReturn get_sca(CoreObject *co, UserRequest *ur)
  *
  * Request -
  * AT-Command: AT+CSCA
- *     AT+CSCA=<sca>[,<tosca>]
+ *     AT+CSCA=<sca>[, <tosca>]
  * where
  * <sca> Service center number
  * <tosca> address type of SCA
  *
  * Response -
  * Success: No result
- *     OK
+ *     OK
  *
  * Failure:
- *      +CMS ERROR: <error>
+ *     +CMS ERROR: <error>
  */
 #ifdef EMUL_SUPPORTED
 static TReturn set_sca(CoreObject *co, UserRequest *ur)
 {
-       gchar *at_cmd;
+       char *at_cmd;
        const struct treq_sms_set_sca *set_sca_req;
        gint address_type;
        TReturn ret;
@@ -1602,7 +1643,7 @@ static TReturn set_sca(CoreObject *co, UserRequest *ur)
                address_type = 129;
 
        /* AT Command */
-       at_cmd = g_strdup_printf("AT+CSCA=\"%s\",%d", set_sca_req->scaInfo.diallingNum, address_type);
+       at_cmd = g_strdup_printf("AT+CSCA=\"%s\", %d", set_sca_req->scaInfo.diallingNum, address_type);
 
        /* Send Request to modem */
        ret = tcore_prepare_and_send_at_request(co,
@@ -1634,7 +1675,7 @@ static TReturn set_sca(CoreObject *co, UserRequest *ur)
 static TReturn set_delivery_report(CoreObject *co, UserRequest *ur)
 {
        const struct treq_sms_set_delivery_report *set_deliver_report_req = NULL;
-       gchar *at_cmd;
+       char *at_cmd;
        TReturn ret;
 
        dbg("Enter");
@@ -1642,10 +1683,10 @@ static TReturn set_delivery_report(CoreObject *co, UserRequest *ur)
        set_deliver_report_req = tcore_user_request_ref_data(ur, NULL);
 
        /*AT Command*/
-       if(set_deliver_report_req->rspType == SMS_SENDSMS_SUCCESS)
+       if (set_deliver_report_req->rspType == SMS_SENDSMS_SUCCESS)
                at_cmd = g_strdup_printf("AT+CNMA=0%s", "\r");
        else
-               at_cmd = g_strdup_printf("AT+CNMA=2,3%s%x%s", "/n", 0x00ff00, "");
+               at_cmd = g_strdup_printf("AT+CNMA=2, 3%s%x%s", "/n", 0x00ff00, "");
 
        /* Send Request to modem */
        ret = tcore_prepare_and_send_at_request(co,
@@ -1675,11 +1716,16 @@ static TReturn get_sms_params(CoreObject *co, UserRequest *ur)
        get_sms_params_data = tcore_user_request_ref_data(ur, NULL);
 
        smsp_record_len = (int *)tcore_plugin_ref_property(tcore_object_ref_plugin(co), "SMSPRECORDLEN");
+       if (NULL == smsp_record_len) {
+               err("SMSP record is NULL");
+               return TCORE_RETURN_FAILURE;
+       }
+
        record_len = *smsp_record_len;
        dbg("record len from property %d", record_len);
 
-       //AT+CRSM=command>[,<fileid>[,<P1>,<P2>,<P3>[,<data>[,<pathid>]]]]
-       cmd_str = g_strdup_printf("AT+CRSM=178,28482,%d,4,%d", (get_sms_params_data->index+1), record_len);
+       /* AT+CRSM=command>[, <fileid>[, <P1>, <P2>, <P3>[, <data>[, <pathid>]]]] */
+       cmd_str = g_strdup_printf("AT+CRSM=178, 28482, %d, 4, %d", (get_sms_params_data->index+1), record_len);
 
        ret =  tcore_prepare_and_send_at_request(co,
                        cmd_str, "+CRSM",
@@ -1713,6 +1759,11 @@ static TReturn set_sms_params(CoreObject *co, UserRequest *ur)
        set_sms_params_data = (struct treq_sms_set_params *)tcore_user_request_ref_data(ur, NULL);
 
        smsp_record_len = (int *)tcore_plugin_ref_property(tcore_object_ref_plugin(co), "SMSPRECORDLEN");
+       if (NULL == smsp_record_len) {
+               err("SMSP record is NULL");
+               return TCORE_RETURN_FAILURE;
+       }
+
        smsp_record_length = *smsp_record_len;
        dbg("smsp_record_length [%d]", smsp_record_length);
 
@@ -1733,8 +1784,8 @@ static TReturn set_sms_params(CoreObject *co, UserRequest *ur)
 
        util_byte_to_hex((const char *)encoded_data, (char *)params_hex_data, smsp_record_length);
 
-       cmd_str = g_strdup_printf("AT+CRSM=220,28482,%d,4,%d,\"%s\"",
-                                       (set_sms_params_data->params.recordIndex+1),smsp_record_length,params_hex_data);
+       cmd_str = g_strdup_printf("AT+CRSM=220, 28482, %d, 4, %d, \"%s\"",
+                                       (set_sms_params_data->params.recordIndex+1), smsp_record_length, params_hex_data);
 
        ret =  tcore_prepare_and_send_at_request(co,
                                cmd_str, "+CRSM:",
@@ -1760,8 +1811,8 @@ static TReturn get_param_count(CoreObject *co, UserRequest *ur)
 
        dbg("Entry");
 
-       //AT+CRSM=command>[,<fileid>[,<P1>,<P2>,<P3>[,<data>[,<pathid>]]]]
-       cmd_str = g_strdup_printf("AT+CRSM=192,28482");
+       /* AT+CRSM=command>[, <fileid>[, <P1>, <P2>, <P3>[, <data>[, <pathid>]]]] */
+       cmd_str = g_strdup_printf("AT+CRSM=192, 28482");
 
        tcore_util_hex_dump("    ", strlen(cmd_str), (void *)cmd_str);
 
@@ -1833,7 +1884,7 @@ gboolean s_sms_init(TcorePlugin *p, TcoreHal *hal)
 
        tcore_plugin_link_property(p, "SMS", data);
 
-       //storing smsp record length
+       /* Storing smsp record length */
        smsp_record_len = g_try_malloc0(sizeof(int));
        tcore_plugin_link_property(p, "SMSPRECORDLEN", smsp_record_len);
 
old mode 100755 (executable)
new mode 100644 (file)
index bb603c7..a6bdffb
 #include "util.h"
 
 enum  telephony_ss_opcode {
-  TIZEN_SS_OPCO_DEACTIVATE=0x01,
-  TIZEN_SS_OPCO_ACTIVATE,
-  TIZEN_SS_OPCO_REG,
-  TIZEN_SS_OPCO_DEREG,
-  TIZEN_SS_OPCO_MAX
+       TIZEN_SS_OPCO_DEACTIVATE = 0x01,
+       TIZEN_SS_OPCO_ACTIVATE,
+       TIZEN_SS_OPCO_REG,
+       TIZEN_SS_OPCO_DEREG,
+       TIZEN_SS_OPCO_MAX
 } ;
 
-static void _ss_ussd_response(UserRequest *ur, const char* ussd_str,
+struct ss_resp_cb_data {
+       enum telephony_ss_opcode opco;
+};
+
+static void _ss_ussd_response(UserRequest *ur, const char *ussd_str,
        enum telephony_ss_ussd_type type, enum telephony_ss_ussd_status status)
 {
        struct tresp_ss_ussd resp;
@@ -66,16 +70,14 @@ static void _ss_ussd_response(UserRequest *ur, const char* ussd_str,
 
                if (len < MAX_SS_USSD_LEN) {
                        memcpy(resp.str, ussd_str, len);
-                       resp.str[ len ] = '\0';
-               }
-               else {
+                       resp.str[len] = '\0';
+               } else {
                        memcpy(resp.str, ussd_str, MAX_SS_USSD_LEN);
-                       resp.str[ MAX_SS_USSD_LEN - 1 ] = '\0';
+                       resp.str[MAX_SS_USSD_LEN - 1] = '\0';
                }
 
                dbg("resp.str : %s", resp.str);
-       }
-       else {
+       } else {
                memset(resp.str, '\0', MAX_SS_USSD_LEN);
        }
 
@@ -85,7 +87,7 @@ static void _ss_ussd_response(UserRequest *ur, const char* ussd_str,
 }
 
 static void _ss_ussd_notification(TcorePlugin *p,
-       const charussd_str, enum telephony_ss_ussd_status status)
+       const char *ussd_str, enum telephony_ss_ussd_status status)
 {
        CoreObject *o = 0;
        struct tnoti_ss_ussd noti;
@@ -102,14 +104,12 @@ static void _ss_ussd_notification(TcorePlugin *p,
 
                if (len < MAX_SS_USSD_LEN) {
                        memcpy(noti.str, ussd_str, len);
-                       noti.str[ len ] = '\0';
-               }
-               else {
+                       noti.str[len] = '\0';
+               } else {
                        memcpy(noti.str, ussd_str, MAX_SS_USSD_LEN);
-                       noti.str[ MAX_SS_USSD_LEN - 1 ] = '\0';
+                       noti.str[MAX_SS_USSD_LEN - 1] = '\0';
                }
-       }
-       else {
+       } else {
                memset(noti.str, '\0', MAX_SS_USSD_LEN);
        }
 
@@ -119,7 +119,7 @@ static void _ss_ussd_notification(TcorePlugin *p,
                        o,
                        TNOTI_SS_USSD,
                        sizeof(struct tnoti_ss_ussd),
-                       (void*)&noti);
+                       (void *)&noti);
 }
 
 static gboolean on_notification_ss_ussd(CoreObject *o, const void *data, void *user_data)
@@ -135,13 +135,13 @@ static gboolean on_notification_ss_ussd(CoreObject *o, const void *data, void *u
        UssdSession *ussd_session = 0;
        char *ussd_str = 0;
        TcorePlugin *p = 0;
-       int m=0, dcs=0;
+       int m = 0, dcs = 0;
 
        p = tcore_object_ref_plugin(o);
 
        ussd_session = tcore_ss_ussd_get_session(o);
 
-       lines = (GSList *) data;
+       lines = (GSList *)data;
        if (g_slist_length(lines) != 1) {
                dbg("Unsolicited message but multiple lines");
                return TRUE;
@@ -153,28 +153,33 @@ static gboolean on_notification_ss_ussd(CoreObject *o, const void *data, void *u
        if (NULL == resp_str) {
                err("Status is missing from +CUSD Notification");
                goto out;
-       }
-       else {
+       } else {
                m = atoi(resp_str);
                switch (m) {
                case 0:
                        status = SS_USSD_NO_ACTION_REQUIRE;
                break;
+
                case 1:
                        status = SS_USSD_ACTION_REQUIRE;
                break;
+
                case 2:
                        status = SS_USSD_TERMINATED_BY_NET;
                break;
+
                case 3:
                        status = SS_USSD_OTHER_CLIENT;
                break;
+
                case 4:
                        status = SS_USSD_NOT_SUPPORT;
                break;
+
                case 5:
                        status = SS_USSD_TIME_OUT;
                break;
+
                default:
                        dbg("unsupported m : %d", m);
                        status = SS_USSD_MAX;
@@ -207,8 +212,8 @@ static gboolean on_notification_ss_ussd(CoreObject *o, const void *data, void *u
                case TCORE_DCS_TYPE_8_BIT: {
                        if (strlen(resp_str)  > 0) {
                                ussd_str = g_new0(char, strlen(resp_str)  + 1);
-                               memcpy(ussd_str,resp_str, strlen(resp_str));
-                               ussd_str[ strlen(resp_str) ] = '\0';
+                               memcpy(ussd_str, resp_str, strlen(resp_str));
+                               ussd_str[strlen(resp_str)] = '\0';
                        }
                }
                break;
@@ -218,7 +223,7 @@ static gboolean on_notification_ss_ussd(CoreObject *o, const void *data, void *u
                        if (ussd_session) {
                                UserRequest *ur = 0;
                                enum telephony_ss_ussd_type type;
-                               tcore_ss_ussd_get_session_data(ussd_session, (void**)&ur);
+                               tcore_ss_ussd_get_session_data(ussd_session, (void **)&ur);
 
                                if (!ur) {
                                        err("ur : (NULL)");
@@ -232,8 +237,7 @@ static gboolean on_notification_ss_ussd(CoreObject *o, const void *data, void *u
                        return TRUE;
                }
                }
-       }
-       else {
+       } else {
                warn("No DCS string! Using default DCS value");
        }
 
@@ -247,20 +251,19 @@ static gboolean on_notification_ss_ussd(CoreObject *o, const void *data, void *u
                        UserRequest *ur = 0;
                        enum telephony_ss_ussd_type type;
 
-                       tcore_ss_ussd_get_session_data(ussd_session, (void**)&ur);
+                       tcore_ss_ussd_get_session_data(ussd_session, (void **)&ur);
                        if (!ur) {
                                err("ur : (NULL)");
                                return TRUE;
                        }
 
                        type = (enum telephony_ss_ussd_type)tcore_ss_ussd_get_session_type(ussd_session);
-                       _ss_ussd_response(ur, (const char*)ussd_str, type, status);
+                       _ss_ussd_response(ur, (const char *)ussd_str, type, status);
 
                        g_free(ussd_str);
-               }
-               else {
+               } else {
                        tcore_ss_ussd_create_session(o, TCORE_SS_USSD_TYPE_NETWORK_INITIATED, 0, 0);
-                       _ss_ussd_notification(p, (const char*)ussd_str, status);
+                       _ss_ussd_notification(p, (const char *)ussd_str, status);
 
                        g_free(ussd_str);
                }
@@ -271,10 +274,10 @@ static gboolean on_notification_ss_ussd(CoreObject *o, const void *data, void *u
                if (ussd_session) {
                        UserRequest *ur = 0;
 
-                       tcore_ss_ussd_get_session_data(ussd_session, (void**)&ur);
-                       if (ur) {
+                       tcore_ss_ussd_get_session_data(ussd_session, (void **)&ur);
+                       if (ur)
                                tcore_user_request_unref(ur);
-                       }
+
                        tcore_ss_ussd_destroy_session(ussd_session);
                }
 
@@ -453,15 +456,28 @@ static void on_response_atmodem_ss_set_barring(TcorePending *p,
                int data_len, const void *data, void *user_data)
 {
        struct tresp_ss_barring resp = {0, };
+       const struct treq_ss_barring *req = NULL;
+       struct ss_resp_cb_data *cb_data = user_data;
        const struct tcore_at_response *at_resp = data;
        UserRequest *ur = NULL;
 
        dbg("Entry");
+       ur = tcore_pending_ref_user_request(p);
 
        if (at_resp) {
                if (at_resp->success) {
-                       err("Response: [OK]");
+                       dbg("Response: [OK]");
                        resp.err = SS_ERROR_NONE;
+
+                       req = tcore_user_request_ref_data(ur, NULL);
+                       resp.record_num = 1;
+                       resp.record = g_malloc0(sizeof(struct barring_info) * resp.record_num);
+                       resp.record[0].class = req->class;
+                       resp.record[0].mode = req->mode;
+                       if (cb_data->opco == TIZEN_SS_OPCO_ACTIVATE)
+                               resp.record[0].status = SS_STATUS_ACTIVATE;
+                       else
+                               resp.record[0].status = SS_STATUS_DEACTIVATE;
                } else {
                        err("Response: [NOK] - [%s]", at_resp->final_response);
                        resp.err = SS_ERROR_UNKNOWNERROR;
@@ -470,20 +486,20 @@ static void on_response_atmodem_ss_set_barring(TcorePending *p,
                err("No response data");
        }
 
-       ur = tcore_pending_ref_user_request(p);
        if (ur) {
-               /*TODO :
-               req_buf = (struct treq_ss_barring *) tcore_user_request_ref_data(ur, 0);
-                       req_buf = (struct treq_ss_barring *) tcore_user_request_ref_data(ur, 0);
-                       resp.record->class = req_buf.class;
-                       resp.record->mode = req_buf.mode;
-               Confirm data to be passed up and send accordingly*/
-               tcore_user_request_send_response(ur,
-                       TRESP_SS_BARRING_ACTIVATE,
+               enum tcore_response_command resp_cmd;
+               if (cb_data->opco == TIZEN_SS_OPCO_ACTIVATE)
+                       resp_cmd = TRESP_SS_BARRING_ACTIVATE;
+               else
+                       resp_cmd = TRESP_SS_BARRING_DEACTIVATE;
+               tcore_user_request_send_response(ur, resp_cmd,
                        sizeof(struct tresp_ss_barring), &resp);
        } else {
                err("ur is NULL");
        }
+
+       g_free(resp.record);
+       g_free(cb_data);
 }
 
 static void on_response_atmodem_ss_get_barring_status(TcorePending *p,
@@ -500,19 +516,17 @@ static void on_response_atmodem_ss_get_barring_status(TcorePending *p,
        dbg("Entry");
 
        ur = tcore_pending_ref_user_request(p);
-       if (ur) {
-               req_buf = (struct treq_ss_barring*) tcore_user_request_ref_data(ur, 0);
-       } else {
+       if (ur)
+               req_buf = (struct treq_ss_barring *)tcore_user_request_ref_data(ur, 0);
+       else
                err("User Request is NULL");
-       }
 
        if (at_resp) {
                if (at_resp->lines && at_resp->success) {
-                       resp_data = (GSList *) at_resp->lines;
-                       resp.record_num= g_slist_length(resp_data);
+                       resp_data = (GSList *)at_resp->lines;
+                       resp.record_num = g_slist_length(resp_data);
                        dbg("Total records: [%d]", resp.record_num);
-               }
-               else {
+               } else {
                        err("RESPONSE - [NOK]");
                }
        } else {
@@ -522,7 +536,7 @@ static void on_response_atmodem_ss_get_barring_status(TcorePending *p,
        if (req_buf) {
                if (resp.record_num > 0) {
                        resp.record = g_try_malloc0(
-                               (resp.record_num) * sizeof(struct tresp_ss_barring));
+                               (resp.record_num) * sizeof(struct barring_info));
                        for (valid_records = 0; resp_data != NULL; resp_data = resp_data->next) {
                                const gchar *line;
                                GSList *tokens = NULL;
@@ -540,11 +554,10 @@ static void on_response_atmodem_ss_get_barring_status(TcorePending *p,
                                                continue;
                                        }
 
-                                       if (atoi(status) == 1) {
+                                       if (atoi(status) == 1)
                                                resp.record[valid_records].status = SS_STATUS_REG;
-                                       } else {
+                                       else
                                                resp.record[valid_records].status = SS_STATUS_DEREG;
-                                       }
 
                                        classx_str = g_slist_nth_data(tokens, 1);
                                        if (!classx_str) {
@@ -558,7 +571,7 @@ static void on_response_atmodem_ss_get_barring_status(TcorePending *p,
                                                }
                                        }
 
-                                       resp.record[valid_records].mode= req_buf->mode;
+                                       resp.record[valid_records].mode = req_buf->mode;
                                        result = TCORE_RETURN_SUCCESS;
                                        valid_records++;
                                } else {
@@ -572,16 +585,13 @@ static void on_response_atmodem_ss_get_barring_status(TcorePending *p,
        }
 
        dbg("Getting Barring status: [%s]",
-                       (result == TCORE_RETURN_FAILURE ? "SUCCESS" : "FAIL"));
+                       (result == TCORE_RETURN_SUCCESS ? "SUCCESS" : "FAIL"));
        resp.record_num = valid_records;
 
        tcore_user_request_send_response(ur,
                        TRESP_SS_BARRING_GET_STATUS,
                        sizeof(struct tresp_ss_barring), &resp);
-
-       if (resp.record) {
-               g_free(resp.record);
-       }
+       g_free(resp.record);
 }
 
 #ifdef EMUL_SUPPORTED
@@ -623,15 +633,36 @@ static void on_response_atmodem_ss_set_forwarding(TcorePending *p,
                int data_len, const void *data, void *user_data)
 {
        struct tresp_ss_forwarding resp = {0, };
+       const struct treq_ss_forwarding *req = NULL;
+       struct ss_resp_cb_data *cb_data = user_data;
        const struct tcore_at_response *at_resp = data;
        UserRequest *ur = NULL;
 
        dbg("Entry");
+       ur = tcore_pending_ref_user_request(p);
 
        if (at_resp) {
                if (at_resp->success) {
-                       err("Response: [OK]");
+                       dbg("Response: [OK]");
                        resp.err = SS_ERROR_NONE;
+
+                       req = tcore_user_request_ref_data(ur, NULL);
+                       resp.record_num = 1;
+                       resp.record = g_malloc0(sizeof(struct forwarding_info) * resp.record_num);
+                       if (cb_data->opco == TIZEN_SS_OPCO_ACTIVATE || cb_data->opco == TIZEN_SS_OPCO_REG)
+                               resp.record[0].status = SS_STATUS_ACTIVATE;
+                       else
+                               resp.record[0].status = SS_STATUS_DEACTIVATE;
+                       resp.record[0].class = req->class;
+                       resp.record[0].mode = req->mode;
+                       if (strlen(req->number)) {
+                               g_strlcpy(resp.record[0].number, req->number, MAX_SS_FORWARDING_NUMBER_LEN);
+                               resp.record[0].number_present = TRUE;
+                       }
+                       resp.record[0].ton = req->ton;
+                       resp.record[0].npi = req->npi;
+                       if (req->time > 0)
+                               resp.record[0].time = req->time;
                } else {
                        err("Response: [NOK] - [%s]", at_resp->final_response);
                        resp.err = SS_ERROR_UNKNOWNERROR;
@@ -640,15 +671,20 @@ static void on_response_atmodem_ss_set_forwarding(TcorePending *p,
                err("No response data");
        }
 
-       ur = tcore_pending_ref_user_request(p);
        if (ur) {
-               /*TODO : Confirm data to be passed up and send accordingly*/
-               tcore_user_request_send_response(ur,
-                       TRESP_SS_FORWARDING_ACTIVATE,
+               enum tcore_response_command resp_cmd;
+               if (cb_data->opco == TIZEN_SS_OPCO_ACTIVATE)
+                       resp_cmd = TRESP_SS_FORWARDING_ACTIVATE;
+               else
+                       resp_cmd = TRESP_SS_FORWARDING_DEACTIVATE;
+               tcore_user_request_send_response(ur, resp_cmd,
                        sizeof(struct tresp_ss_barring), &resp);
        } else {
                err("ur is NULL");
        }
+
+       g_free(resp.record);
+       g_free(cb_data);
 }
 
 static void on_response_atmodem_ss_get_forwarding_status(TcorePending *p,
@@ -665,16 +701,15 @@ static void on_response_atmodem_ss_get_forwarding_status(TcorePending *p,
        dbg("Enter");
 
        ur = tcore_pending_ref_user_request(p);
-       if (ur) {
-               req_buf = (struct treq_ss_forwarding*) tcore_user_request_ref_data(ur, 0);
-       }
+       if (ur)
+               req_buf = (struct treq_ss_forwarding *)tcore_user_request_ref_data(ur, 0);
+
        if (at_resp) {
                if (at_resp->lines && at_resp->success) {
-                       resp_data = (GSList *) at_resp->lines;
-                       resp.record_num= g_slist_length(resp_data);
+                       resp_data = (GSList *)at_resp->lines;
+                       resp.record_num = g_slist_length(resp_data);
                        dbg("Total records: [%d]", resp.record_num);
-               }
-               else {
+               } else {
                        err("RESPONSE - [NOK]");
                        resp.err = SS_ERROR_UNKNOWNERROR;
                }
@@ -685,7 +720,7 @@ static void on_response_atmodem_ss_get_forwarding_status(TcorePending *p,
        if (req_buf) {
                if (resp.record_num > 0) {
                resp.record = g_try_malloc0(
-                       (resp.record_num) * sizeof(struct tresp_ss_forwarding));
+                       (resp.record_num) * sizeof(struct forwarding_info));
                for (valid_records = 0; resp_data != NULL; resp_data = resp_data->next) {
                        const gchar *line;
                        GSList *tokens = NULL;
@@ -705,11 +740,10 @@ static void on_response_atmodem_ss_get_forwarding_status(TcorePending *p,
                                        continue;
                                }
 
-                               if (atoi(status) == 1) {
+                               if (atoi(status) == 1)
                                        resp.record[valid_records].status = SS_STATUS_ACTIVATE;
-                               } else {
+                               else
                                        resp.record[valid_records].status = SS_STATUS_DEACTIVATE;
-                               }
 
                                classx_str = g_slist_nth_data(tokens, 1);
                                if (!classx_str) {
@@ -751,27 +785,36 @@ static void on_response_atmodem_ss_get_forwarding_status(TcorePending *p,
        resp.record_num = valid_records;
 
        tcore_user_request_send_response(ur,
-                       TRESP_SS_FORWARDING_DEACTIVATE,
+                       TRESP_SS_FORWARDING_GET_STATUS,
                        sizeof(struct tresp_ss_forwarding), &resp);
-
-       if (resp.record) {
-               g_free(resp.record);
-       }
+       g_free(resp.record);
 }
 
 static void on_response_atmodem_ss_set_waiting(TcorePending *p,
                int data_len, const void *data, void *user_data)
 {
        struct tresp_ss_waiting resp = {0, };
+       const struct treq_ss_waiting *req = NULL;
+       struct ss_resp_cb_data *cb_data = user_data;
        const struct tcore_at_response *at_resp = data;
        UserRequest *ur = NULL;
 
        dbg("Entry");
+       ur = tcore_pending_ref_user_request(p);
 
        if (at_resp) {
                if (at_resp->success) {
-                       err("Response: [OK]");
+                       dbg("Response: [OK]");
                        resp.err = SS_ERROR_NONE;
+
+                       req = tcore_user_request_ref_data(ur, NULL);
+                       resp.record_num = 1;
+                       resp.record = g_malloc0(sizeof(struct waiting_info) * resp.record_num);
+                       resp.record[0].class = req->class;
+                       if (cb_data->opco == TIZEN_SS_OPCO_ACTIVATE)
+                               resp.record[0].status = SS_STATUS_ACTIVATE;
+                       else
+                               resp.record[0].status = SS_STATUS_DEACTIVATE;
                } else {
                        err("Response: [NOK] - [%s]", at_resp->final_response);
                        resp.err = SS_ERROR_UNKNOWNERROR;
@@ -780,15 +823,20 @@ static void on_response_atmodem_ss_set_waiting(TcorePending *p,
                err("No response data");
        }
 
-       ur = tcore_pending_ref_user_request(p);
        if (ur) {
-               /*TODO : Confirm data to be passed up and send accordingly*/
-               tcore_user_request_send_response(ur,
-                       TRESP_SS_WAITING_ACTIVATE,
+               enum tcore_response_command resp_cmd;
+               if (cb_data->opco == TIZEN_SS_OPCO_ACTIVATE)
+                       resp_cmd = TRESP_SS_WAITING_ACTIVATE;
+               else
+                       resp_cmd = TRESP_SS_WAITING_DEACTIVATE;
+               tcore_user_request_send_response(ur, resp_cmd,
                        sizeof(struct tresp_ss_waiting), &resp);
        } else {
                err("ur is NULL");
        }
+
+       g_free(resp.record);
+       g_free(cb_data);
 }
 
 static void on_response_atmodem_ss_get_waiting_status(TcorePending *p,
@@ -805,20 +853,18 @@ static void on_response_atmodem_ss_get_waiting_status(TcorePending *p,
        dbg("Enter");
 
        ur = tcore_pending_ref_user_request(p);
-       if (ur) {
-               req_buf = (struct treq_ss_waiting*) tcore_user_request_ref_data(ur, 0);
-       } else {
+       if (ur)
+               req_buf = (struct treq_ss_waiting *)tcore_user_request_ref_data(ur, 0);
+       else
                err("User Request is NULL");
-       }
 
        if (at_resp) {
                if (at_resp->lines && at_resp->success) {
-                       resp_data = (GSList *) at_resp->lines;
-                       waiting_resp.record_num= g_slist_length(resp_data);
+                       resp_data = (GSList *)at_resp->lines;
+                       waiting_resp.record_num = g_slist_length(resp_data);
                        dbg("Total records: [%d]", waiting_resp.record_num);
                        waiting_resp.err = SS_ERROR_NONE;
-               }
-               else {
+               } else {
                        err("RESPONSE - [NOK]");
                        waiting_resp.err = SS_ERROR_UNKNOWNERROR;
                }
@@ -829,7 +875,7 @@ static void on_response_atmodem_ss_get_waiting_status(TcorePending *p,
        if (req_buf) {
                if (waiting_resp.record_num > 0) {
                        waiting_resp.record = g_try_malloc0(
-                               (waiting_resp.record_num) * sizeof(struct tresp_ss_waiting));
+                               (waiting_resp.record_num) * sizeof(struct waiting_info));
                        for (valid_records = 0; resp_data != NULL; resp_data = resp_data->next) {
                                const gchar *line;
                                GSList *tokens = NULL;
@@ -847,11 +893,10 @@ static void on_response_atmodem_ss_get_waiting_status(TcorePending *p,
                                                continue;
                                        }
 
-                                       if (atoi(status) == 1) {
-                                               waiting_resp.record[valid_records].status= SS_STATUS_ACTIVATE;
-                                       } else {
+                                       if (atoi(status) == 1)
+                                               waiting_resp.record[valid_records].status = SS_STATUS_ACTIVATE;
+                                       else
                                                waiting_resp.record[valid_records].status = SS_STATUS_DEACTIVATE;
-                                       }
 
                                        classx_str = g_slist_nth_data(tokens, 1);
                                        if (!classx_str) {
@@ -880,11 +925,9 @@ static void on_response_atmodem_ss_get_waiting_status(TcorePending *p,
        waiting_resp.record_num = valid_records;
 
        tcore_user_request_send_response(ur,
-                       TRESP_SS_WAITING_DEACTIVATE,
+                       TRESP_SS_WAITING_GET_STATUS,
                        sizeof(struct tresp_ss_waiting), &waiting_resp);
-
-       if (waiting_resp.record)
-               g_free(waiting_resp.record);
+       g_free(waiting_resp.record);
 }
 
 #ifdef EMUL_SUPPORTED
@@ -901,9 +944,8 @@ static void on_response_atmodem_ss_get_cli_status(TcorePending *p,
        dbg("Enter");
 
        ur = tcore_pending_ref_user_request(p);
-       if (ur) {
-               req_buf = (struct treq_ss_cli*) tcore_user_request_ref_data(ur, 0);
-       }
+       if (ur)
+               req_buf = (struct treq_ss_cli *)tcore_user_request_ref_data(ur, 0);
 
        if (req_buf->type == SS_CLI_TYPE_CDIP) {
                err("Unsupported CLI type: [%d]", req_buf->type);
@@ -913,10 +955,7 @@ static void on_response_atmodem_ss_get_cli_status(TcorePending *p,
 
        if (at_resp && at_resp->success) {
                const gchar *line;
-/*             gchar  *status = NULL;
-               gint net_status;
-               gint dev_status;
-*/
+
                if (!at_resp->lines) {
                        err("Invalid response message");
                        goto out;
@@ -928,8 +967,9 @@ static void on_response_atmodem_ss_get_cli_status(TcorePending *p,
                        goto out;
                }
                dbg("RESPONSE OK");
-               /*TODO: Confirm Status Mapping and pass accordingly
-               */
+               /*
+                * TODO: Confirm Status Mapping and pass accordingly
+                */
                cli_resp.type = req_buf->type;
                result = TCORE_RETURN_SUCCESS;
        } else {
@@ -961,7 +1001,7 @@ static void on_response_atmodem_ss_send_ussd_request(TcorePending *p,
 
        dbg("Enter");
 
-       co= tcore_pending_ref_core_object(p);
+       co = tcore_pending_ref_core_object(p);
 
        ussd_s = tcore_ss_ussd_get_session(co);
        if (!ussd_s) {
@@ -993,13 +1033,14 @@ static TReturn _ss_barring_set(CoreObject *o, UserRequest *ur, enum telephony_ss
 {
        gchar *at_cmd = NULL;
        struct treq_ss_barring *barring_info = NULL;
+       struct ss_resp_cb_data *cb_data = NULL;
        guint mode;
        guint classx;
        const char *facility = NULL;
-       char password[ MAX_SS_BARRING_PASSWORD_LEN + 1];
+       char password[MAX_SS_BARRING_PASSWORD_LEN + 1];
        TReturn ret = TCORE_RETURN_FAILURE;
 
-       barring_info =  (struct treq_ss_barring*)tcore_user_request_ref_data(ur, 0);
+       barring_info =  (struct treq_ss_barring *)tcore_user_request_ref_data(ur, 0);
 
        if (op == TIZEN_SS_OPCO_ACTIVATE)
                mode = 1;
@@ -1020,17 +1061,24 @@ static TReturn _ss_barring_set(CoreObject *o, UserRequest *ur, enum telephony_ss
        dbg("facility: [%s], classx:[%d], mode: [%d]", facility, classx, mode);
 
        /* AT-Command */
-       at_cmd = g_strdup_printf("AT+CLCK=\"%s\",%d,\"%s\",%d",
+       at_cmd = g_strdup_printf("AT+CLCK=\"%s\", %d, \"%s\", %d",
                facility, mode, password, classx);
        dbg("request command : %s", at_cmd);
 
+       /* Make resp_cb_data */
+       cb_data = g_malloc0(sizeof(struct ss_resp_cb_data));
+       cb_data->opco = op;
+
        /* Send Request to modem */
        ret = tcore_prepare_and_send_at_request(o, at_cmd, NULL,
                TCORE_AT_NO_RESULT,
                ur,
-               on_response_atmodem_ss_set_barring, NULL,
+               on_response_atmodem_ss_set_barring, cb_data,
                on_send_at_request, NULL, 0, NULL, NULL);
-       dbg("ret: [0x%x]", ret);
+       if (ret != TCORE_RETURN_SUCCESS) {
+               err("Request failed!!!");
+               g_free(cb_data);
+       }
 
        g_free(at_cmd);
        return ret;
@@ -1057,7 +1105,7 @@ static TReturn _ss_barring_get(CoreObject *o,
        dbg("facility: [%s], classx:[%d], mode: [%d]", facility, classx, mode);
 
        /* AT-Command */
-       at_cmd = g_strdup_printf("AT+CLCK=\"%s\",%d,,%d",
+       at_cmd = g_strdup_printf("AT+CLCK=\"%s\", %d, , %d",
                        facility, mode, classx);
        dbg("request command : %s", at_cmd);
 
@@ -1094,7 +1142,7 @@ static TReturn s_ss_barring_change_password(CoreObject *o, UserRequest *ur)
 
        dbg("Entry");
 
-       barring_info = (struct treq_ss_barring_change_password*)tcore_user_request_ref_data(ur, 0);
+       barring_info = (struct treq_ss_barring_change_password *)tcore_user_request_ref_data(ur, 0);
 
        memcpy(old_password, barring_info->password_old, MAX_SS_BARRING_PASSWORD_LEN);
        old_password[MAX_SS_BARRING_PASSWORD_LEN] = '\0';
@@ -1102,7 +1150,7 @@ static TReturn s_ss_barring_change_password(CoreObject *o, UserRequest *ur)
        new_password[MAX_SS_BARRING_PASSWORD_LEN] = '\0';
 
        dbg("old passwd - %s new passwd- %s", old_password, new_password);
-       at_cmd = g_strdup_printf("AT+CPWD=\"%s\",\"%s\",\"%s\"", "AB", old_password, new_password);
+       at_cmd = g_strdup_printf("AT+CPWD=\"%s\", \"%s\", \"%s\"", "AB", old_password, new_password);
        dbg("request command : %s", at_cmd);
 
        /* Send Request to modem */
@@ -1122,7 +1170,7 @@ static TReturn s_ss_barring_change_password(CoreObject *o, UserRequest *ur)
 static TReturn s_ss_barring_get_status(CoreObject *o, UserRequest *ur)
 {
        struct treq_ss_barring *barring_info = 0;
-       barring_info = (struct treq_ss_barring*)tcore_user_request_ref_data(ur, 0);
+       barring_info = (struct treq_ss_barring *)tcore_user_request_ref_data(ur, 0);
 
        return _ss_barring_get(o, ur, barring_info->class, SS_BARR_MODE_BOIC);
 }
@@ -1131,6 +1179,7 @@ static TReturn _ss_forwarding_set(CoreObject *o, UserRequest *ur, enum telephony
 {
        gchar *at_cmd = NULL;
        struct treq_ss_forwarding *forwarding_info = NULL;
+       struct ss_resp_cb_data *cb_data = NULL;
        TReturn ret = TCORE_RETURN_FAILURE;
        gchar *tmp_cmd = NULL;
        guint classx;
@@ -1140,7 +1189,7 @@ static TReturn _ss_forwarding_set(CoreObject *o, UserRequest *ur, enum telephony
 
        dbg("Entry");
 
-       forwarding_info = (struct treq_ss_forwarding*) tcore_user_request_ref_data(ur, 0);
+       forwarding_info = (struct treq_ss_forwarding *)tcore_user_request_ref_data(ur, 0);
 
        classx = __atmodem_ss_convert_class_to_atmodem_class(forwarding_info->class);
        if (__atmodem_ss_convert_forwarding_opcode_to_modem_mode(
@@ -1163,33 +1212,39 @@ static TReturn _ss_forwarding_set(CoreObject *o, UserRequest *ur, enum telephony
        dbg("classx: [%d], reason:[%d], mode: [%d]", classx, reason, mode);
 
        if (mode == 3)  /* TIZEN_SS_OPCO_REGISTER */
-               tmp_cmd = g_strdup_printf("AT+CCFC=%d,%d,\"%s\",%d,%d",
+               tmp_cmd = g_strdup_printf("AT+CCFC=%d, %d, \"%s\", %d, %d",
                        reason, mode, forwarding_info->number, num_type, classx);
        else
-               tmp_cmd = g_strdup_printf("AT+CCFC=%d,%d,,,%d",
+               tmp_cmd = g_strdup_printf("AT+CCFC=%d, %d, , , %d",
                        reason, mode, classx);
 
        if (reason == 2)        /* SS_CF_MODE_CFNRy */
-               at_cmd = g_strdup_printf("%s,,,%d", tmp_cmd, forwarding_info->time);
+               at_cmd = g_strdup_printf("%s, , , %d", tmp_cmd, forwarding_info->time);
        else
                at_cmd = g_strdup_printf("%s", tmp_cmd);
        dbg("request command : %s", at_cmd);
 
+       /* Make resp_cb_data */
+       cb_data = g_malloc0(sizeof(struct ss_resp_cb_data));
+       cb_data->opco = op;
+
        /* Send Request to modem */
        ret = tcore_prepare_and_send_at_request(o, at_cmd, NULL,
                TCORE_AT_NO_RESULT,
                ur,
-               on_response_atmodem_ss_set_forwarding, NULL,
+               on_response_atmodem_ss_set_forwarding, cb_data,
                on_send_at_request, NULL, 0, NULL, NULL);
-       dbg("ret: [0x%x]", ret);
+       if (ret != TCORE_RETURN_SUCCESS) {
+               err("Request failed!!!");
+               g_free(cb_data);
+       }
 
        g_free(at_cmd);
        g_free(tmp_cmd);
-
        return ret;
 }
 
-static TReturn _ss_forwarding_get(     CoreObject *o,
+static TReturn _ss_forwarding_get(CoreObject *o,
                UserRequest *ur,
                enum telephony_ss_class class,
                enum telephony_ss_forwarding_mode mode)
@@ -1212,7 +1267,7 @@ static TReturn _ss_forwarding_get(        CoreObject *o,
 
        dbg("classx: [%d], reason: [%d], mode: [%d]", classx, reason, query_mode);
 
-       at_cmd = g_strdup_printf("AT+CCFC=%d,%d,,,%d", reason, query_mode, classx);
+       at_cmd = g_strdup_printf("AT+CCFC=%d, %d, , , %d", reason, query_mode, classx);
        dbg("request command : %s", at_cmd);
 
        /* Send Request to modem */
@@ -1251,7 +1306,7 @@ static TReturn s_ss_forwarding_deregister(CoreObject *o, UserRequest *ur)
 static TReturn s_ss_forwarding_get_status(CoreObject *o, UserRequest *ur)
 {
        struct treq_ss_forwarding *forwarding_info = 0;
-       forwarding_info = (struct treq_ss_forwarding*)tcore_user_request_ref_data(ur, 0);
+       forwarding_info = (struct treq_ss_forwarding *)tcore_user_request_ref_data(ur, 0);
 
        return _ss_forwarding_get(o, ur, forwarding_info->class, forwarding_info->mode);
 }
@@ -1260,35 +1315,42 @@ static TReturn _ss_waiting_set(CoreObject *o, UserRequest *ur, enum telephony_ss
 {
        gchar *at_cmd = NULL;
        struct treq_ss_waiting *waiting_info = 0;
+       struct ss_resp_cb_data *cb_data = NULL;
        guint classx;
        guint mode;
        TReturn ret = TCORE_RETURN_FAILURE;
 
        dbg("Entry");
 
-       waiting_info = (struct treq_ss_waiting*) tcore_user_request_ref_data(ur, 0);
+       waiting_info = (struct treq_ss_waiting *)tcore_user_request_ref_data(ur, 0);
 
-       if (opco ==  TIZEN_SS_OPCO_ACTIVATE) {
+       if (opco ==  TIZEN_SS_OPCO_ACTIVATE)
                mode = 1;
-       } else {
+       else
                mode = 0;
-       }
+
        classx = __atmodem_ss_convert_class_to_atmodem_class(waiting_info->class);
        dbg("mode: [%d], class: [%d]", mode, classx);
 
-       at_cmd = g_strdup_printf("AT+CCWA=1,%d,%d", mode, classx);
+       at_cmd = g_strdup_printf("AT+CCWA=1, %d, %d", mode, classx);
        dbg("request command : %s", at_cmd);
 
+       /* Make resp_cb_data */
+       cb_data = g_malloc0(sizeof(struct ss_resp_cb_data));
+       cb_data->opco = opco;
+
        /* Send Request to modem */
        ret = tcore_prepare_and_send_at_request(o, at_cmd, NULL,
                TCORE_AT_NO_RESULT,
                ur,
-               on_response_atmodem_ss_set_waiting, NULL,
+               on_response_atmodem_ss_set_waiting, cb_data,
                on_send_at_request, NULL, 0, NULL, NULL);
-       dbg("ret: [0x%x]", ret);
+       if (ret != TCORE_RETURN_SUCCESS) {
+               err("Request failed!!!");
+               g_free(cb_data);
+       }
 
        g_free(at_cmd);
-
        return ret;
 }
 
@@ -1305,7 +1367,7 @@ static TReturn _ss_waiting_get(CoreObject *o,
        classx = __atmodem_ss_convert_class_to_atmodem_class(class);
        dbg("class: [%d]", classx);
 
-       at_cmd = g_strdup_printf("AT+CCWA=1,2,%d", classx);
+       at_cmd = g_strdup_printf("AT+CCWA=1, 2, %d", classx);
        dbg("request command : %s", at_cmd);
 
        /* Send Request to modem */
@@ -1334,7 +1396,7 @@ static TReturn s_ss_waiting_deactivate(CoreObject *o, UserRequest *ur)
 static TReturn s_ss_waiting_get_status(CoreObject *o, UserRequest *ur)
 {
        struct treq_ss_waiting *waiting = 0;
-       waiting = (struct treq_ss_waiting*)tcore_user_request_ref_data(ur, 0);
+       waiting = (struct treq_ss_waiting *)tcore_user_request_ref_data(ur, 0);
 
        return _ss_waiting_get(o, ur, waiting->class);
 }
@@ -1350,25 +1412,30 @@ static TReturn s_ss_cli_get_status(CoreObject *o, UserRequest *ur)
        cli_info = (struct treq_ss_cli *)tcore_user_request_ref_data(ur, 0);
 
        switch (cli_info->type) {
-               case SS_CLI_TYPE_CLIR:
-                       cmd_prefix = "+CLIR";
-                       break;
-               case SS_CLI_TYPE_CLIP:
-                       cmd_prefix = "+CLIP";
-                       break;
-               case SS_CLI_TYPE_COLP:
-                       cmd_prefix = "+COLP";
-                       break;
-               case SS_CLI_TYPE_COLR:
-                       cmd_prefix = "+COLR";
-                       break;
-               case SS_CLI_TYPE_CNAP:
-                       cmd_prefix = "+CNAP";
-                       break;
-               case SS_CLI_TYPE_CDIP:
-               default:
-                       dbg("Unsupported CLI type: [%d]", cli_info->type);
-                       return ret;
+       case SS_CLI_TYPE_CLIR:
+               cmd_prefix = "+CLIR";
+       break;
+
+       case SS_CLI_TYPE_CLIP:
+               cmd_prefix = "+CLIP";
+       break;
+
+       case SS_CLI_TYPE_COLP:
+               cmd_prefix = "+COLP";
+       break;
+
+       case SS_CLI_TYPE_COLR:
+               cmd_prefix = "+COLR";
+       break;
+
+       case SS_CLI_TYPE_CNAP:
+               cmd_prefix = "+CNAP";
+       break;
+
+       case SS_CLI_TYPE_CDIP:
+       default:
+               dbg("Unsupported CLI type: [%d]", cli_info->type);
+               return ret;
        }
 
        /* AT-Command */
@@ -1397,13 +1464,13 @@ static TReturn s_ss_send_ussd(CoreObject *o, UserRequest *ur)
        struct treq_ss_ussd *ussd = 0;
        TReturn ret = TCORE_RETURN_FAILURE;
 
-       ussd = (struct treq_ss_ussd*)tcore_user_request_ref_data(ur, 0);
+       ussd = (struct treq_ss_ussd *)tcore_user_request_ref_data(ur, 0);
 
        ussd_s = tcore_ss_ussd_get_session(o);
        if (!ussd_s) {
                dbg("USSD session does not exist");
                tcore_ss_ussd_create_session(o, (enum tcore_ss_ussd_type)ussd->type,
-                       (void*)tcore_user_request_ref(ur), 0);
+                       (void *)tcore_user_request_ref(ur), 0);
        } else {
 
                if (ussd->type == SS_USSD_TYPE_USER_INITIATED) {
@@ -1416,8 +1483,8 @@ static TReturn s_ss_send_ussd(CoreObject *o, UserRequest *ur)
                tcore_ss_ussd_set_session_type(ussd_s, (enum tcore_ss_ussd_type)ussd->type);
        }
 
-       at_cmd = g_strdup_printf("AT+CUSD=1,\"%s\",%d", ussd->str, 0x0f);
-       dbg("request command : %s",at_cmd);
+       at_cmd = g_strdup_printf("AT+CUSD=1, \"%s\", %d", ussd->str, 0x0f);
+       dbg("request command : %s", at_cmd);
 
        /* Send Request to modem */
        ret = tcore_prepare_and_send_at_request(o, at_cmd, NULL,
@@ -1461,7 +1528,7 @@ gboolean s_ss_init(TcorePlugin *p, TcoreHal *h)
 
        so = tcore_ss_new(p, "ss", &ss_ops, h);
        if (!so) {
-               err("[ error ] ss_new()");
+               err("[error] ss_new()");
                return FALSE;
        }