{"id":9359,"date":"2026-06-04T23:23:00","date_gmt":"2026-06-04T23:23:00","guid":{"rendered":"https:\/\/www.use-snip.com\/kb\/?post_type=ht_kb&#038;p=9359"},"modified":"2026-06-04T23:50:50","modified_gmt":"2026-06-04T23:50:50","slug":"import-export-push-out-streams","status":"publish","type":"ht_kb","link":"https:\/\/www.use-snip.com\/kb\/knowledge-base\/import-export-push-out-streams\/","title":{"rendered":"Import-Export Push-Out Streams"},"content":{"rendered":"<p>From <strong>Rev \u00a03.20<\/strong> onward<span style=\"color: #0000ff;\"> <strong>SNIP<\/strong><\/span> now has two new convenience buttons to <strong>Import<\/strong> and to <strong>Export<\/strong> <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/sending-pushed-out-data\/\" target=\"_blank\" rel=\"noopener\">Push-Out<\/a> data stream settings.\u00a0 This feature is mostly of interest to deployments that run multiple redundant <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> NTRIP Casters that need to be kept in sync when Base Stations change.\u00a0 A typical deployment might have one Caster operating on a <em>private<\/em> network available to users within a corporate run firewall, and another available on the <em>public<\/em> IP available to a wider group of user such a vendors and support staff.<\/p>\n<p>This feature is implemented as two new buttons found on the <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/the-pushed-out-streams-tab-output-data\/\" target=\"_blank\" rel=\"noopener\">Push-Out tab<\/a> and shown in the image below. While the general use case of Push-Out streams is to connect to another remote NTRIP Caster (and using the NTRIP protocol), it should be noted that this feature can be used to connect to <strong>any<\/strong> remote TCP\/IP socket. This can be of value when sending a data stream to non-NTRIP end points.<\/p>\n<p><a href=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/PushOut-Import-Export.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9361 size-full aligncenter\" src=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/PushOut-Import-Export.png?_t=1780612705\" alt=\"\" width=\"780\" height=\"344\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/PushOut-Import-Export.png 780w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/PushOut-Import-Export-300x132.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/PushOut-Import-Export-768x339.png 768w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/PushOut-Import-Export-50x22.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/PushOut-Import-Export-600x265.png 600w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/PushOut-Import-Export-320x141.png 320w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\" \/><\/a><\/p>\n<h2><strong>Exporting<\/strong><\/h2>\n<p>The current set of Push-Out streams can be exported into a date\u00a0 and time stamped file by pressing the <strong>Export<\/strong> button.\u00a0 The export takes only a moment and the console log will display the results and inform you where the output file was placed, for example:<\/p>\n<pre>Exporting a list of all <strong>Push-Out<\/strong> slots to an external text file.\r\n<em>Hint:<\/em> Use this file to import the list to another NTRIP Caster machine.\r\nExporting 1 of 9...\r\nSaving 9 entries to file....\r\nFile (1,984 bytes) written to <strong>C:\/Program Files (x86)\/SNIP\/bin\/data\/PushOutData_KEY_2026_06_04_13_47_28.txt<\/strong><\/pre>\n<p>In the above fragment the text KEY is replaced by the last five digits of the license key (if present).\u00a0 This provided a method to tell what instance of \u00a0<span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> the file came from.\u00a0 And the text \u201c2026_06_04_13_47_28\u201d should be read as June 4th 2026 at 13:47:28 in the local time zone.<\/p>\n<p>The file itself is made up of simple text which any text editor can edit. The entries are a sequence of simple repeating patterns with the key settings for each Push-Out stream.\u00a0 A typical entry is shown below.<\/p>\n<pre style=\"padding-left: 40px;\">### Push-Out Entry 3 of 9\r\nSource: AZU1_RTCM3\r\nSent_As: foo\r\nSent_To: 001.xxx.yyy.zzz\r\nSent_To_Port: 2101\r\nUser_Account:\r\nPassword: bm9uZTEw\r\nUse_Rev2: false\r\nUse_SSL: false\r\nSlip_Ok: false<\/pre>\n<p>All comment lines start with \u201c#\u2019 (## is used for the file headers while ### starts each new entry).\u00a0 Each line is terminated with a line feed.\u00a0 The order of entries in the export is not material and may be changed if needed (such as when merging files). The numbering used is simply informative. The order (and numbering) is ignored on import. The password field is base64 encoded, everything else is in plain text.<\/p>\n<h2><strong>Importing<\/strong><\/h2>\n<p>Import is, by contrast, a considerably more complex process. The selected source file must be parsed and then checked for internal consistencies and for potential conflicts with any currently loaded Push-In streams.\u00a0 The <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> operator is given a few dialog choices when any conflicts are found to either abort or proceed.\u00a0 As with any major change to the Caster settings, it is wise to make a full back up before proceeding (found at Menu:\u00a0 Misc \u21d2 Back-Up\u2026 \u21d2 \u00a0Back-Up Now).<\/p>\n<p>After pressing <strong>Import<\/strong>, the first step of the process is to select the import file to be used.\u00a0 A standard file dialog is presented and the user selects the *.txt file to be processed (or cancels). As the process proceeds the console log shows progress and status.\u00a0 And a list of any problems that are found is added to the console log.\u00a0 A progress bar is shown as each of the consistency checking stages is performed.\u00a0 In a file with no detected issues a display like the below will be shown:<\/p>\n<p><a href=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/ImportPushOut-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9363 size-full aligncenter\" src=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/ImportPushOut-1.png?_t=1780612705\" alt=\"\" width=\"440\" height=\"230\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/ImportPushOut-1.png 440w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/ImportPushOut-1-300x157.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/ImportPushOut-1-50x26.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/ImportPushOut-1-320x167.png 320w\" sizes=\"auto, (max-width: 440px) 100vw, 440px\" \/><\/a><\/p>\n<p>The dialog box lists four critical bits of information you should review.<\/p>\n<ol>\n<li>How large the selected file was in bytes\/chars, <em>does this match expectations?<\/em><\/li>\n<li>How many records were found in the file, <em>does this match expectations?<\/em><\/li>\n<li>How many Push-In slots <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> <em>CURRENTLY<\/em> has loaded<\/li>\n<li>And How many unused slots exist, <em>is there sufficient room?<\/em><\/li>\n<\/ol>\n<p>These values should be examined to confirm that they meet your expectations before proceeding.<\/p>\n<p>In this case we are importing the file we created a moment ago, so seeing that there are 9 records and also 9 existing Push-Out slots already loaded is to be expected.\u00a0 And in this case we want to overwrite the existing entries, so <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> has provided a pre-checked option to that effect.<\/p>\n<p style=\"text-align: right; padding-left: 80px;\">[<span style=\"color: #008000;\"><strong>Aside:<\/strong><\/span> If this were NOT checked, the entries would be appended, resulting in 18 entries with nine sets of two entries sending the same data to the same remote endpoint.\u00a0\u00a0 Almost certainly a problem and only of value if you plan to hand edit the entries to remove the conflicts before use. If that is your plan, it is perhaps easier to first export the combined set and edit this down in a text editor and then do a clean import with the edited results.]<\/p>\n<p>Some operators prefer to delete all existing Push-In slots before importing the file; others let <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> do it. There is no intrinsic advantage to either.<\/p>\n<p>If there were no existing Push-In entries, the presented dialog is somewhat simpler, and the operator is simply asked to confirm before the import occurs.<\/p>\n<p><a href=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/ImportPushOut-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9362 size-full aligncenter\" src=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/ImportPushOut-2.png\" alt=\"\" width=\"300\" height=\"230\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/ImportPushOut-2.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2026\/06\/ImportPushOut-2-50x38.png 50w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>If you proceed with the import you will see a console entry similar to:<\/p>\n<pre style=\"padding-left: 40px;\">Importing Push-Out settings was completed, loaded <strong>9<\/strong> records, <strong>9<\/strong> in total<\/pre>\n<p>If the existing Push-In slots are active and part of a <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/nearest-streams-tab\/\" target=\"_blank\" rel=\"noopener\">NEAR stream<\/a> or in use by <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/question-what-is-an-ntrip-client\/\" target=\"_blank\" rel=\"noopener\">NTRIP Clients<\/a>, you will see the above line preceded with a number of warning messages that a given Push-In stream was removed from a NEAR stream or otherwise dropped.\u00a0 Once the new stream is re-started these things quickly sort themselves out, but consideration should be given to any active end users you may disrupt.\u00a0 Note that user disruptions may also occur on the remote NTRIP Casters that these streams are being sent to during the period when the stream is removed and then added back.<\/p>\n<h2><strong>General Remarks<\/strong><\/h2>\n<p>This is a rather specialized set of features for deployments that make extensive use of Push-Out streams, which is itself not the most common type of <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/stream-types\/\" target=\"_blank\" rel=\"noopener\"><span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> stream<\/a>.<\/p>\n<p>It was created in part because all the Push-In settings reside in the general simpleNTRIP.ini file which we do not recommend you hand edit or attempt to change. [<strong>NEVER<\/strong> do this when <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> is active.]\u00a0 In this respects it differs from external files such as \u201c<em>reservations<\/em>\u201d (which holds <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/reserving-pushed-mountpoint\/\" target=\"_blank\" rel=\"noopener\">Push-In reservations<\/a>) or <em>NtripUserAccounts.ini<\/em> or <em>NtripCustomerAccounts.ini<\/em> (which hold the details of <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/adding-user-accounts\/\" target=\"_blank\" rel=\"noopener\">User Accounts<\/a> and <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/adding-customer-accounts\/\" target=\"_blank\" rel=\"noopener\">Customer Accounts<\/a> respectively).<\/p>\n<p><span style=\"color: #008000;\"><strong><em>Aside<\/em><\/strong>:<\/span> There are also similar <em><strong>Export<\/strong><\/em> and <strong><em>Import<\/em> <\/strong>functions for the User Accounts. See <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/import-export-user-accounts\/\" target=\"_blank\" rel=\"noopener\">this article<\/a> for further details of their use.\u00a0 This feature has value when importing a large number of new User Accounts from another source.<\/p>\n<p>Note that for larger <span style=\"color: #0000ff;\"><strong>SNIP<\/strong> <\/span>deployments (those with 75 or more streams), the way in which Push-Out streams \/ slots is counted differs.\u00a0 On such deployments, each new Push-Out stream is counted as \u00bd a slot to effectively increase the number of Push-Out streams the deployment can support.\u00a0 See <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/counting-push-out-slots\/\" target=\"_blank\" rel=\"noopener\">this article<\/a> for details.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>From Rev \u00a03.20 onward SNIP now has two new convenience buttons to Import and to Export Push-Out data stream settings.\u00a0 This feature is mostly of interest to deployments that run multiple redundant SNIP NTRIP Casters that need to be kept in sync when Base Stations change.\u00a0 A typical deployment might [&hellip;]<\/p>\n","protected":false},"author":1,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"ht-kb-category":[112],"ht-kb-tag":[],"class_list":["post-9359","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-general"],"_links":{"self":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/9359","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/comments?post=9359"}],"version-history":[{"count":8,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/9359\/revisions"}],"predecessor-version":[{"id":9371,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/9359\/revisions\/9371"}],"wp:attachment":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/media?parent=9359"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-category?post=9359"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-tag?post=9359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}